最近这段时间一直在研究设计模式,感觉还是要应用于实践中,在会有所得,就像生活一样,听的,看的,不如自己去实践,现在将小小的心的写下来
一。软件的可维护性和可复用性
1.可复用性:
<1>可插入性:将具有同样接口的类去替换软件中的一个类,程序不会受到影响.
<2>可扩展性:新的功能可以很容易的加入到软件中
<3>灵活性:对软件中的修改,可以很平稳的过渡,对其他模块没有影响
2.可维护和可复用的基石:设计原则和设计模式
3.java面向对象的基本特性:封装,继承,多态,抽象.
二,设计原则
1.开闭原则:
<1>对扩展开发,对修改关闭。
<2>面向对象的语言来讲:就是不可以修改的是系统的抽象层,可以扩展的是系统的实现层
<3>抽象化是关键
<4>对变化的封装:一中变化不要和另外一种变化混在一起。继承是封装变化的方法。一个类的继承等级结构,不要超过两层.
2.里氏替换原则
<1>基类可以出现的地方,子类一定可以出现
3.依赖倒转原则
<1>要依赖抽象编程,而不是实现
<2>对方法的声明,参数的声明,对象的声明等等最好是用抽象
4.组合、聚合复用原则
<1>组合聚合复用优先于继承
<2>一个类是另外一个类的角色,使用组合聚合
5.接口隔离原则
<1>使用尽可能多的接口比使用单一接口要好
<2>接口的合理划分:一个接口代表一个角色
<3>定制服务:为不同的客户提供不同的接口
<4>接口的污染:面向对象的一个关键是对接口和角色的合理划分
6.迪米特法则
<1>只和朋友说话:
<2>对类,方法,变量的访问权限
6.srp(单一职责原则)
<1>一个类只有一个地方可以变化
<2>一个类的变化只影响一个类
<3>一个类的变化只影响一个等级接口
抽象类:
<1>抽象类是用了继承的
<2>是用继承的四点要求:
不要从工具类继承,is-a和has-a关系,不会将子类设计为其他类的子类,子类是扩展父类的功能,而不是置换和撤销
接口:
<1>接口是对客户的承诺,一断做出就无法更改
以后分析,不过想想,以后补充中。。。