学习设计模式六大设计原则之二-阿里云开发者社区

开发者社区> 开发与运维> 正文

学习设计模式六大设计原则之二

简介: 四、接口隔离原则(Interface Segregation Principle,ISP) 1、实例接口;在Java中使用关键字new产生一个实例,它是对一个类型事物的描述,它是一个接口。比如定义一个Person类,使用new实例化Person。

四、接口隔离原则(Interface Segregation Principle,ISP)

1、实例接口;在Java中使用关键字new产生一个实例,它是对一个类型事物的描述,它是一个接口。比如定义一个Person类,使用new实例化Person。Person p = new Person();其中Person就是p的一个接口。

2、类接口;由Java中的关键字Interface定义的接口。

接口隔离原则的定义:

1、Clients should not be forced to depend upon interfaces that they don't use.

2、The dependency of one class to another one should depend on the smallest possible interface.

通过上边两条定义可以通俗点讲:接口尽量细化,同时接口中的方法尽量少。接口是我们设计时对外提供的契约,通过分散定义多个接口,可以预防未来变更的扩散,提高系统的灵活性和可维护性。根据接口隔离原则拆分接口时,首先必须满足单一职责原则。

实际设计:

1、一个接口只服务于一个子模块或者业务逻辑;

2、通过业务逻辑压缩接口中的public方法,尽量使接口达到满身筋骨肉;

3、已经被污染的接口,尽力修改,如果风险大,则使用适配器模式进行转化;

4、了解环境,拒绝盲从;

五、迪米特法则(Law of Demeter,LoD)也称最少知识原则(Least Knowledge Principle,LKP)

规则是:一个对象应该对其他的对象有最少的了解。(Only talk to your immedate friends)

迪米特法则要求类要羞涩一点,尽量不要对外公布太多的public方法和非静态public变量,迪米特法则的初衷在于降低类之间的耦合。由于每个类尽量减少对其他类的依赖,因此,很容易使得系统的功能模块功能独立,相互之间不存在(或很少有)依赖关系。

迪米特法则的核心观念就是类间解耦,弱耦合,只有弱耦合了,类的复用率才能提高。

六、开闭原则(Open Closed Principle,OCP)

Software entities like classes, modules and functions should be open for extension but closed for modification.

开闭原则是面向对象设计的基本设计规则,其他原则是开闭的具体形态的体现。

开闭原则的好处有:

提高代码的复用性,可维护性好。




版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章