设计模式(一)

[TOC]

设计原则

一、单一职责原则

​ 有且仅有一个原因引起类的变更。

优点:

  • 类的复杂性降低,实现什么职责都有明确的定义;
  • 可读性提高;
  • 可维护性提高;
  • 变更引起的风险降低。

二、里氏替换原则

​ 所有引用基类的地方必须能透明使用其子类的对象。只要父类能出现的地方,子类就可以出现,而且替换子类也不会产生错误。

继承的优点:

  • 代码共享,每个子类都有父类的方法和属性;
  • 提高代码重用性;
  • 提高代码扩展性;
  • 提高产品或项目开放性。

继承的缺点:

  • 具有侵入性,子类有父类的所有属性和方法;
  • 降低代码灵活性;
  • 增强耦合性,父类中常量、变量和方法被修改时,需要考虑子类的修改。

三、依赖倒置原则

​ 高层模块不应该依赖底层模块,两者都应该依赖其抽象,抽象不应该依赖细节,细节应该依赖抽象。

​ 模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系通过接口或抽象类产生的。接口或抽象类不依赖于实现类,实现类依赖接口或抽象类。

四、接口隔离原则

​ 客户端不应依赖它不需要的接口,对接口进行细化;类建的依赖关系应该建立在最小的接口上。建立单一接口,不要建立臃肿庞大的接口。而且要满足单一职责原则。

五、迪米特法则

​ 也称最少知识原则:一个对象应该对其他对象有最少的了解。一个类应该对自己需要耦合或调用的类知道的最少。

​ 只和直接的朋友通信:每个对象都必然与其他对象有耦合关系,两个对象间的耦合就成为朋友关系。

​ 迪米特法则的核心观念就是类间的解耦,弱耦合。其实就是面向对象编程。

六、开闭原则

​ 一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。一个软件实体应该通过扩展来实现变化,而不是通过修改已有的代码来实现变化。开闭原则可以提高复用性,提高维护性。

抽象约束:通过接口或者抽象类可以约束一组可能变化的行为,并且能够实现对扩展开放。

1.通过接口或者抽象类约束扩展,对扩展进行边界限定,不允许出现在接口或者抽象类中不存在的public方法。

2.参数类型、引用对象尽量使用接口或者抽象类,而不是实现类。

3.抽象层尽量保持稳定,一旦确定即不允许修改。

六大设计原则主要是Java面向对象编程设计的原则,降低项目耦合,分清职责。方便开发和继续维护。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
显示 Gitment 评论