面向对象设计之代码复用
来源:互联网 发布:网络机顶盒 五星体育 编辑:程序博客网 时间:2024/05/03 02:58
1.对接口编程
“对接口编程”是面向对象设计的第一个基本原则,对于所有完成相同功能的组件都实现该接口,或者从该抽象类继承。
2.对象组合
"优先使用对象组合,而不是类继承"是面向对象设计的第二个原则
Bridge、Composite、Decorator、Observer、Strategy
3.将可变的部分和不可变的部分分离"是面向对象设计的第三个原则
4.每个对象完成尽量少(而且简单)的功能",也是OO的一个基本原则
5.尽量减少对变量的直接访问
对数据的封装原则应该规范化,不要把一个类的属性暴露给其它类,而是应该通过访问方法去保护他们,这有利于避免产生波纹效应。如果某个属性的名字改变,你只需要修改它的访问方法,而不是修改所有相关的代码。
6.减少方法的长度
通常,我们的方法应该只有尽量少的几行,太长的方法会难以理解,而且,如果方法太长,则应该重新设计。对此,可以总结为以下原则:
- 三十秒原则:
如果另一个程序员无法在三十秒之内了解你的函数做了什么(What),如何做(How)以及为什么要这样做(Why),那就说明你的代码是难以维护的,必须得到提高; - 一屏原则:
如果一个函数的代码长度超过一个屏幕,那么或许这个函数太长了,应该拆分成更小的子函数; - 一行代码尽量简短,并且保证一行代码只做一件事
那种看似技巧性的冗长代码只会增加代码维护的难度。
7.子类应该特性化,完成特殊功能
如果一个子类只是使一个组件变成组件管理器,而不是实现接口功能,或者,重载某个功能,那么,就应该使用一个外部的容器类,而不是创建一个子类。
8.拆分过大的类
如果一个类有太多的方法(超过50个),那么它可能要做的工作太多,我们应该试着将它的功能拆分到不同的类中,类似于规则四。
9.作用截然不同的对象应该拆分
在构建的过程中,你有时会遇到这样的问题:对同样的数据,有不同的视图。某些属性描述的是数据结构怎样生成,而某些属性描述的是数据结构本身。最好将这两个视图拆分到不同的类中,从类名上就可以区分出不同视图的作用。
类的域、方法也应该有同样的考虑!
10.尽量减少对参数的隐含传递
两个方法处理类内部同一个数据(域),并不意味着它们就是对该数据(域)做处理。许多时候,该数据(域)应该作为方法的参输入数,而不是直接存取,在工具类的设计中尤其应该注意
- 面向对象设计之代码复用
- 面向对象之代码复用规则
- 面向对象之代码复用规则
- 面向对象设计原则 面向对象设计原则之合成复用原则
- 面向对象之设计
- 面向对象之设计
- 代码大全(5)之面向对象设计
- 面向对象设计原则之合成复用原则
- 面向对象设计原则之合成复用原则
- 面向对象设计原则之合成复用原则
- 面向对象设计原则之合成复用原则
- 面向对象设计原则之合成复用原则
- 面向对象设计原则之合成复用原则
- 面向对象设计原则之合成复用原则
- 面向对象设计原则之合成复用原则
- 面向对象设计原则之七--合成复用原则
- 面向对象设计原则之合成复用原则
- 面向对象设计之:多态
- 目标检测(Object Detection)原理与实现(六)
- C# datagridview 导入excel
- usb设备无法启动,Windows 没有启动相关的设备驱动程序
- sharedPerference保存本机ip和mac地址
- 八皇后问题
- 面向对象设计之代码复用
- (Python学习3)字符串对象
- 在Manifest中声明Activity的父Activity
- 光标闪烁问题的解决办法
- Cocos2d-x利用CCSpriteBatchNode提高渲染效率
- 给入门级程序员的5点建议
- atheros wifi芯片ics高通平台 wifi睡眠策略分析
- First Django-powered page
- 不用FTP使用SecureCRT上传下载文件,并解决rz、sz command not found异常