设计模式七大设计原则

设计模式七大原则

开闭原则

面向修改关闭,面向扩展开放

里氏替换原则

注意点
1、子类可以重写父类的抽象方法,但不能重写父类的已实现方法
2、子类重载父类的方法时候,方法的前置条件(即方法的输入参数)要比父类的方法更宽松
3、子类可以拥有自己持有的方法
4、子类重载父类方法的时候,最后返回的参数需要比父类严格。

因为父类在的地方可以由子类替代
如果子类重写了父类的方法,那么用子类替代父类的时候,调用被重写的方法,程序只会执行子类的方法,而不会执行父类的方法。所以就违背了父类在的地方可以由子类替代这句话。
同样的道理,重载父类前置条件应当比子类前置条件更严格,这样的话,同样的参数传入重载方法中,该参数范围在父类对象的范围内的话会默认执行父类对象,超出了父类对象的范围,则才执行子类对象。

若在继承时,子类的方法返回值类型范围比父类的方法返回值类型范围大,在子类重写该方法时编译器会报错。

如果在写代码时违背里氏替换原则,则代码出错的可能性会增加。

依赖倒置

将面向细节转变成面向抽象。
高层模块不应该依赖底层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象。
可以把接口作为参数传入。以这种形式实现面向抽象编程。

单一职责

一个方法尽可能做好一件事情【这样可以减少方法之间的耦合,并且提高代码的复用】

接口隔离

约束接口,降低类对接口的依赖
将庞大臃肿的接口细化成更小更具体的接口,隔离类对不需要方法的依赖,提高接口的灵活性。

注意点:
1、接口尽量小,但要有限度,一个接口只服务于一个子模块或业务逻辑
2、为依赖接口的类定制服务,只提供调用者需要的方法,屏蔽不需要的方法。
3、根据环境的不同,接口的拆分的方法也不一样
4、提高内聚,减少对外交互,用接口最少的方法完成最多的事情。

迪米特法则

不要和陌生人说话
两个实体间无需直接通信,可以通过第三方进行间接调用。
注意:
1、从依赖者的角度来说,只依赖应该依赖的对象。
2、从被依赖者的角度说,只暴露应该暴露的方法。


1、在类的划分上,创建弱耦合的类,类和类之间的耦合越弱,越有利于实现可复用
2、在类的结构设计上,尽量降低类成员的访问权限
3、类的设计上,优先考虑将一个类设置成不变类
4、在对其他类的引用上,将引用其他 对象的次数降到最低
5、不暴露类的属性成员,而提供相应的访问器
6、谨慎使用序列化功能。

降低类之间的耦合度,提高模块的相对独立性
提高类的可复用性和系统的扩展性。

组合/聚合复用原则

能用组合/聚合就不用继承

总结

其实几大原则的目的主要是为了降低对象间的耦合,增加程序的可复用性、可扩展性和可维护性。

在这里插入图片描述

参考:

http://c.biancheng.net/view/1354.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值