设计模式的六大原则
面向对象设计的六个基本原则:开放封闭、里氏代换、依赖倒转、接口隔离、迪米特法则和单一职责
问题
什么是设计模式的六大原则?
解答
开放封闭原则(Open Close Principle)
通过扩展软件实体来解决需求变化,而不是修改已有代码。软件产品在生命周期内必然发生变化,在设计时应该适应这些变化,提高项目的稳定性和灵活性。
里氏代换原则(Liskov Substitution Principle)
使用基类的地方可以用子类完美替换。子类可以扩展父类的功能,但不能改变父类原有的功能。子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法,子类中可以增加自己特有的方法。
这样可以增加程序的健壮性,即使增加了子类,原有的子类还可以继续运行,互不影响。
依赖倒转原则(Dependence Inversion Principle)
面向接口编程,依赖于抽象而不依赖于具体。在程序代码中传递参数时或在关联关系中,尽量引用层次高的抽象层类。这是开放封闭原则的基础。
接口隔离原则(Interface Segregation Principle)
使用多个隔离的接口,比使用单个接口要好。目的是降低类之间的耦合度。例如支付类的接口和订单类的接口,应该设计成两个隔离的接口,而不是混在一起。
迪米特法则(Demeter Principle)
也称最少知道原则。一个对象应当对其他对象有尽可能少的了解,即类间解耦。一个类尽量减少自己对其他对象的依赖,只有使各个模块之间的耦合尽量低,才能提高代码的复用率。
单一职责原则(Single Responsibility Principle)
一个方法或一个类只负责一件事情。各个职责的程序改动,不影响其他程序。这样可以降低类和类的耦合,提高可读性,增加可维护性和可扩展性,降低可变性的风险。
关键点
- 开放封闭原则:通过扩展而非修改来应对变化
- 里氏代换原则:子类可以替换父类,但不能改变父类原有功能
- 依赖倒转原则:面向接口编程,依赖抽象而非具体实现
- 接口隔离原则:使用多个专门的接口,降低耦合度
- 迪米特法则:类之间保持最少了解,减少依赖关系
- 单一职责原则:一个类或方法只负责一个职责
目录