救赎之路

设计模式之软件架构设计原则

2020-04-20  本文已影响0人  成都的苟且生活


1.开闭原则

  官方解释:对扩展开发,对修改关闭,尽量在不修改源,但是可以增加新的功能。

个人理解:开闭原则在增加功能的情况下尽量不要直接去类里面修改源码,可以考虑继承或其他的方式来 实现新的功能。

2.依赖倒置原则

官方解释:代码设计时,高层模块不应该依赖低层模块,二者应该依赖其抽象。

个人理解:这个东西感觉平时开发中经常用到 写service层的时候,尽量依赖其接口,感觉这就是面向接口编程,先顶层再细节的设计代码结构

3.单一职责原则

官方解释:不要存在多于一个导致类变更的原因。

个人理解:一个类尽量只负责干一件事情。假如我们有一个类负责两个职责,一旦发生需求变更,修改其中一个职责的逻辑代码,有可能导致另一个的职责功能发生故障。

4.接口隔离原则

官方解释:用多个专门的接口,而不使用单一的总接口,客户端不应该依赖它不需要的接口。

个人理解:接口不要使用一个总的大接口,不要什么东西都往里面塞,能细分就尽量细分接口中的方法尽量的少一点,客户端写的时候注意用的才依赖不用的就不要依赖它了。

5.迪米特法则

官方解释:一个对象应该对其他对象保持最少的了解,同时有叫最少知道原则

个人理解:这个感觉就是我们设计的类都应该是内向的,只和他的朋友说话,不会和陌生人聊天,什么叫朋友类呢,出现在他身边的有交集的(出现在成员变量,方法的输入,输出参数中的类),内部类不能算是朋友类。

6.里式替换原则

官方解释:如果对每一个类型为T1的对象O1,都有类型T2的对象O2,使得T1定义的所有程序P在所有对象O1都替换成O2时,程序P的行为没有发生变化,那么类型T2是类型T1 的子类型。

个人理解:这个也就是我们常说的子类继承父类可以扩展父类的功能,但不能改变父类原有的功能,具体体现为:

a. 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法

b.子类可以添加自己的特有方法

c.当子类的方法重载父类的方法时,方法的前置条件(入参/输入)要比父类方法的输入参数更宽松

d.当子类的方法实现父类的方法时,方法的输出/返回值要比父类的更严格或与父类一样

7.合成复用原则

官方解释:尽量使用对象组合(has-a)/聚合(contanis-a)而不是继承关系达到软件复用的目的。

个人理解:字面意思就是叫我们少用继承,我们不关心它的实现细节,直接用它的方法就行了(类似于调用工具类的方法)。

8.总结

  请看到这篇文章的小伙伴把我的个人理解当作一个思路就好,这只是帮助学习的一种方式,同时技术是为业务服务的不是所有程序都必须遵循,不要打乱自己的节奏才是最好的,个人以为这个在某个时刻灵光一闪这样设计会更好,这样的运用方式就很棒。

最后祝各位一切万事顺心。

上一篇 下一篇

猜你喜欢

热点阅读