设计模式六大原则

来源:互联网 发布:天猫是属于淘宝的吗 编辑:程序博客网 时间:2024/04/30 03:22
开放封闭原则

所有面向对象设计原则的核心。其核心思想是:类、模块和函数应该对扩展开放,对修改关闭。对扩展开放,意味着有新的需求或变化时,应该对现有的类、模块等做扩展,以适应新的情况。对修改关闭,意味着一旦类、模块等设计完成,就可以独立完成其工作,而不应尝试对其做任何修改。

实现开闭原则的基础:面向抽象编程,而不针对具体实现。抽象相对固定,而具体实现则和实际相关。让类依赖相对固定的抽象,对外部调用来说,类的修改对外部透明。通过面向对象的继承、多态机制,可以在抽象或者现有实现类的基础上,实现新的功能,而不影响现有模块。

单一职责原则

一个类,只有一个职责,只要专注做好一件事。职责过多,将导致各个职责之间的逻辑互相影响,牵一发而动全身。

依赖倒置原则

其核心是抽象。高层模块不依赖与低层具体实现,而依赖于抽象接口。类和模块,相互之间不可避免的会出现依赖耦合。为了解耦,最好的方法就是分离接口与实现,即:高层模块和低层模块耦合部分抽象成接口,高层模块调用接口,而低层模块实现接口。

接口隔离原则

使用多个小的职责单一的接口,而不要使用一个大的多个职责的接口。也就是说,接口也应该是内聚的,一个类对另一个类的依赖,应该建立在最小接口上,而不要强制加入不需要的接口方法。

里氏替换原则

核心思想是子类可以扩展父类的方法,但是不能修改父类的原有功能。它包含以下四层含义:子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法;子类可以增加自己的特有方法;子类重载父类方法时,子类方法形参可以比父类更宽松;子类实现父类抽象方法时,返回值要比父类更严格。这就要求我们面向接口编程,将公共部分抽象为基类接口或抽象类,在子类中通过覆写父类的方法实现新的方式支持同样的职责。

迪米特法则

又叫最少知道原则,就是一个类对自己所依赖的类知道的越少越好。对于被依赖的类,无论逻辑多么复杂,都必须将这些细节封装在内部,除了public方法之外,不对外泄露任何信息。其初衷是降低类之间的耦合,由于每个类都减少了不必要的依赖,因此的确可以降低耦合关系。但是凡事都有度,虽然可以避免与非直接的类通信,但是要通信,必然会通过一个“中介”来发生联系。过分遵守迪米特法则,可能导致出现大量的中介类,导致系统难度变大。


0 0
原创粉丝点击