您的位置:首页 > 编程语言 > Java开发

java模式笔记 (二)—— 对象原则

2013-02-08 09:22 141 查看
隐藏在设计模式后边的更一般的东西

软件的要求

保持可维护性的基础上,提高复用,通过设计原则和设计模式来实现。

开闭原则 OCP

一个系统对扩展开放,对修改关闭: 在不修改原有的基础上进行扩展。
最顶级的原则,也最抽象,是系统实现的目标。其他原则是它某一方面的具体化

实现思路

对系统的抽象层不修改,扩展系统的实现层。
抽象化是关键。
考虑什么会引起变化,而不需要重新设计系统

抽象类和接口

接口的作用:
类型体系; Mixed接口模式;标示接口(如Seariable)
各自的优点:
抽象类可以有函数实现
类可以实现多个接口
接口和抽象类的结合:
缺省适配模式,Mixed Type: 接口、抽象类、多个具体的类
继承的使用:
子类是对超类的扩展,而不是修改或撤销超类的接口

李氏代换原则

使用抽象类的地方,可以使用子类来替换,换句话说抽象类类或接口定义的内容,子类必须支持,反过来不成立。
抽象类定义接口,子类进行特定实现。
对于扩展的需要,不一定要使用继承

实现思路

两个具体类A和B间有继承关系,但A和B有接口略微不同
修改为A和B都继承于抽象类C
修改为B使用组合方式访问A

依赖倒转

依赖于抽象类,而不是具体实现,对象设计的主要手段

接口隔离原则

针对不同的情况,设定不同的接口,如一个service要为三个客户服务,而这三个客户需要的服务略微不同,应该为这三个客户端提供不同的java接口,每个接口仅仅将需要的服务暴露给客户端

实现思路

准确而恰当地划分角色,并让每个角色对应一个接口
多个接口是集成关系,实现类实现所有的接口

好处是

1)不做过多的承诺;
2)如果需要修改,知道哪些用户会受到影响

合成、聚合复用原则

尽量使用组合,而不是继承
一对多的关系只能使用组合表示
is a 是什么的一种;has a 具有什么的角色

迪米特原则

不要和陌生人说话,用于解耦

实现思路

减少类的变化:尽量不提供set方法
尽量降低类的访问权限:对于top类的权限是default和public,尽量使用default
谨慎使用searializable:可能引起调用端使用不一致
尽量降低成员的访问权限:private default protected public
变量在使用的时候再定义
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐