设计模式——六大设计原则

一、 单一职责原则(SRP):
定义:
一个类(接口、方法)只做一件事,有且只有一个原因会引起类或接口的变更。
单一职责原则的好处:
(1)类的复杂性降低;
(2)可读性提高;
(3)可维护性提高;
(4)变更引起的风险降低。
应用:接口(方法)一定要做到单一职责,而类的设计尽量做到只有一个原因引起变化。

二、里氏替换原则(LSP):
定义:
所有引用父类的地方都必须可以透明地使用其子类的对象。(通俗来说就是所有父类能出现的地方子类都可以出现,而且替换为子类也不会出现任何错误或异常,使用者根本不需要知道是父类还是子类。)
含义:
(1)子类必须完全实现父类的方法;
(2)子类可以有自己的个性;
(3)覆盖或实现父类的方法时输入参数可以被放大;
(4)覆写或实现父类的方法时输出结果可以被缩小;

三、依赖倒置原则(DIP):
定义:
高层模块不依赖于低层模块,两者都应该依赖其抽象;
抽象不应该依赖于细节;
细节应该依赖于抽象。
依赖于接口(抽象),而不依赖于实现(细节)。
依赖的三种写法:
(1)构造函数传递依赖对象;
(2)Setter方法传递依赖对象;
(3)接口声明依赖对象;

四、接口隔离原则(ISP):
定义:
客户端不应该依赖于它不需要的接口;
类间的依赖关系应该建立在最小的接口上。
(使用多个专门的接口,而不使用单一的总接口。首先应满足单一职责原则。)
接口隔离原则是对接口进行规范约束,包含以下4层含义:
(1)接口要尽量小;
(2)接口要高内聚;
(3)定制服务;
(4)接口设计是有限度的;

五、迪米特法则(LoD,又称最少知识原则):
含义:
只和朋友交流;(一个对象应该对其他的对象有最少的了解)
朋友间也是有距离的;(一个类对自己需要耦合或者调用的类知道的越少越好)
是自己的就是自己的;
谨慎使用Serializable;
六、开闭原则(OCP):
定义:
(对扩展开放,对修改关闭。)
软件实体必须通过扩展来实现变化,而不是修改已有的代码来实现变化;(软件实体通常包括:模块、抽象和类、方法)
变化可分为:逻辑变化、子模块变化和可见视图变化。
采用开闭原则的原因:
(1)使用开闭原则对单元测试用例影响最小;
(2)提高代码复用性;
(3)提高可维护性;
(4)面向对象开发的基本要求;
如何使用开闭原则:
(1)抽象约束;
(2)元数据控制模块行为;(元数据就是用来描述环境和数据的数据,即配置参数)
(3)制定项目章程;
(4)封装变化;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦里逆天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值