面向对象设计第七话

设计原则与模式

软件设计的核心问题,可维护性和可复用性。

设计原则

(OCP)开-闭原则,软件实体应对扩展开放,对修改关闭,也就是屏蔽了修改对使用者的影响(简单工厂模式不支持开闭原则),实现开闭原则要尽量使用抽象,实质就是要尽量降低耦合性,封装可变性。可变性间不能混合。(基本原则)

(LSP)里氏代换原则,任何使用父类的地方都可以把父类替换为子类而不影响正常运行。(多态的使用)

(DIP)依赖倒转原则,要把依赖关系建立到抽象(接口、父类)上,不要依赖于实现(子类,实现类)。(避免类关系复杂,提高可扩展性),针对接口编程,推迟实现。

(ISP)接口隔离原则,使用多个专用接口替代单一接口。

(CARR)组合/聚合复用原则,使用组合或聚合关系,替代继承。

(LoD)迪米特法则(最少支持原则),一个对象或模块应该和其他对象和模块尽量少通信(依赖)。可以自己与自己通信(this),与自己的属性对象通信,与集合属性中的元素,与方法的参数对象通信,与自己创建的对象。


设计模式

工厂方法模式
当我们想获得一相关产品类的时候,创建抽象工厂类,通过抽象工厂的抽象方法返回抽象产品类,创建具体工厂类,实现抽象方法,返回具体产品类

单例模式
class ClassA{ //懒汉式单例模式,在多线程访问的时候,会造成不同步的问题
private static ClassA i=null;
public static ClassA newInstance(){ //在方法上加同步,影响效率,相比较饿汗式单例模式好点
if(i==null) i=new ClassA();
return i;
}
private ClassA(){}
}
MVC模式
观察者模式
状态模式
对象的行为依赖对象的状态
组合模式
要在Java中实现一颗树,就一定会用到组合模式
把树叶节点和树枝节点的共性取出来,通过Node屏蔽差异,同等处理
装饰模式
代理模式
适配模式
责任链模式
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值