设计原则

index:

1,单一职责原则

2,开关原则

3,里氏替换原则

4,依赖倒置原则

5,接口隔离原则

6,迪米特法则

1.单一职责原则(策略模式):一个类或者方法只能做一件事情,

应用:在构造对象时,将对象的不同职责分离到两个到多个类中,确保引起该类变化的原因只有一个。

例子:在我们的状态模式中,每个状态都有与之相对应的行为。这就很好的体现了单一职责原则。

优点:提高内聚,减少耦合度。

缺点:可能会导致资源文件过多,而管理不便。

2.(Open-close-principle开关原则)体现的模式:策略模式,装饰器模式,模板模式

对扩展是开放的,对修改是封闭的,即在不修改源码的情况下对其进行扩展,

我们的面向接口编程,这就有效的体现了这一原则。

比如说我们的一个项目需要进行增加一个功能。就增加一个实现类就可以。不需要修改它的源代码。

好处:提高了灵活性,可重用性,可维护性。

难点:OCP的关键是抽象父类,或者接口,创建正确的抽象发费时间和精力,也增加了软件设计的复杂性。

    正确的做法:只对程序中频繁变化的做出抽象。

3.里氏替换原则(LSP)(工厂模式)

定义:用子类去替换父类。即凡是父类能够出现的地方,子类就一定能够出现,反之则不成立。

工厂模式就很好的实现了这一原则,比如说dao层,父类并不知道是生成那一个子类的对象。

而我们的子类是知道它实现的是那个接口。

这样子类替换就非常的容易。可以在无需修改的情况下进行修改。

LSP使OCP成为可能的主要原则之一,

4.依赖倒置原则:(模板模式)

定义:高层模板不依赖于底层模板,它们都应该依赖于抽象。

抽象不应该依赖于细节,细节应该依赖于抽象。

也就是说它父类不应该依赖子类的东西。

例子:拿我们项目中来说,比如说dao,和dao的实现,我们dao层不应该知道dao实现的具体的操作。

如果dao层需要修改的话,那么还会影响到dao的实现,这样耦合度就非常的高。

5.接口隔离原则:(观察者模式)

定义:不要强迫客户依赖于它们不用的方法。

让一个类对另外一个类的依赖性应当是建立在最小的接口上的。

例子:如果我们一个类需要一些方法,避免实现方法过多的接口。

作用:避免接口污染

一个接口代表一个角色,不应当将不同的角色都交给一个接口。

6.迪米特原则 (体现了门面模式)

定义:又叫最少知识原则,一个对象对其他对象应该有尽可能少的了解,这是一个送耦合的的法则。

例子:我们在程序中通常把能私有化的属性,方法,都要尽量的私有化。

这样我们修改一些模板对其他模板的影响就少些,使代码也更加安全。

我们可以使用门面模式来实现这一原则,门面模式就是隐藏子系统的复杂性。与客户程序打交道

只有一个类而已。

    缺点:在系统中造出大量的小方法,管理不要方便。

相关推荐