将属于一类的对象放在一起:

    如果一个函数操纵一个全局变量,那么两者最好都在类内作为特性和方法实现。

  

不要让对象过于亲密:

    方法应该只关心自己实例的特性,让其他实例管理自己的状态。

简单就好:

    让方法小巧起来,一般来说,多数方法都应在30秒内被读完,尽量在代码的行数控制在一页或者一屏之内。

小心继承,尤其是多继承:

    继承机制有时很有用,但也会在某些情况下让事情变得过于复杂,多继承难以正确使用,更难以调试。

在需要思考用什么类以及类有什么方法时,可以用以下方法。

1:写下问题的描述,把所有的名词、动词和形容词加下划线。

2:对于所有的名词,用作可能的类。

3:对于所有的动词,用作可能的方法。

4:对于所有的形容词,用作可能的特性。

5:将所有的方法和特性分配到类里。

当我们对即将做的事能抽象出一个模糊的对象草图时,就可以考虑类和对象之间的关系以及他们的作用。剩下的就是逐渐的精炼模型。

1:写下一系列的使用实例,也就是程序应用时的场景,试着包含所有的功能。

2:一步步考虑每个使用实例,保证模型包括所有需要的东西。如果有些遗漏的话就添加进去,如果某处不太正确则纠正,直到满意为止。

最新文章

  1. 新手入门指导:Vue 2.0 的建议学习顺序
  2. android开发环境搭建(ubuntu15.04+jdk8+eclipse+android sdk)
  3. Java中的夏令时问题
  4. JAVA 1.4 算术运算
  5. _crol_和_cror_函数
  6. N-Queens | & N-Queens II
  7. 优化Linux下的内核TCP参数来提高服务器负载能力
  8. git and github学习笔记
  9. android开发之应用Crash自动抓取Log_自动保存崩溃日志到本地
  10. R语言 系统聚类分析1
  11. 发送cookie
  12. 小型Mp3播放器
  13. Linux进程通信——管道
  14. source is null for getProperty(null, "cpmodel")异常结局
  15. SublimeText用FileHeader给代码文件生成头部注释
  16. linux中去掉^M的方法
  17. docker启动centos7后sudo不能使用
  18. 自旋锁(Spin Lock)
  19. CF10D LCIS
  20. Spring开启方法异步执行

热门文章

  1. App后台开发架构实践笔记
  2. 【Leetcode】【Easy】Reverse Integer
  3. 【Leetcode】【Easy】Binary Tree Level Order Traversal II
  4. 【甘道夫】NN HA 对于 Client 透明的实验
  5. OpenCV人脸识别
  6. STL - rope 【强大的字符串处理容器】
  7. ConcurrentMap注意事项
  8. Android学习笔记_59_清除sdcard缓存
  9. Android学习笔记_29_样式和主题
  10. 安装 centos7