设计模式学习

BobHuang / 2023-08-15 / 原文

目前我的编程主要是面向过程,能够获得非常高的效率,我也能很好得将其功能模块化,变得易于理解和维护,很大程度的原因是因为我面对的需求可以被抽象为一个完整的模块或者我需要在非常成熟的软件增添功能,而且需求往往是简单且稳定的,一个人可以独立完成,需要维护的数据结构也不多。复杂的软件工程中往往会面向对象,因为要具备比较高的可维护性、可扩展性和代码维护性,封装、继承、多态是OOP的基础,设计模式是广泛接受的、经过实践验证的软件设计方法。有5大设计原则,缩写为 SOLID

一、单一职责原则(Single Responsibility Principle,SRP)

每个类应该只负责一个特定的功能或职责。这意味着一个类应该只有一个引起它变化的原因。将不同职责的代码隔离到不同的类中,可以提高代码的可维护性和可理解性。

二、开放封闭原则(Open-Closed Principle,OCP)

软件实体(类、模块、函数等)应该是可扩展的,但不可修改的。这意味着在添加新功能时,不应该修改现有的代码,而是通过扩展已有的代码来实现。

三、里式替换原则(Liskov Substitution Principle,LSP)

子类应该能够替代父类,而不影响程序的正确性。这意味着子类应该继承父类的行为,但不能改变其预期的行为。

四、接口隔离原则(Interface Segregation Principle,ISP)

不应该强迫客户端依赖于其不需要的接口。一个类不应该实现它不需要的接口,而应该将接口分解为更小的、更专注的部分。

五、依赖倒置原则(Dependency Inversion Principle,DIP)

高层模块不应该依赖于低层模块,两者都应该依赖于抽象。抽象不应该依赖于具体实现细节,而是具体实现应该依赖于抽象。