【学习笔记】23种设计模式与7大设计原则(更新中)

大图镇楼

设计模式的七大原则

设计模式是一种经验复用。其中最重要的经验是解耦。

以下这些原则需要自己构想出案例来解释,否则需要重新学习。

开闭原则OCP(Open-Closed Principle)

在软件实体(如类、函数)中,对扩展开放,对修改关闭。核心在于面向抽象编程。

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

继承必须确保超类所拥有的性质在子类中依然成立。具体表现为:

子类可以实现父类的抽象方法,但是不能覆盖非抽象方法。
子类可以增加自己的方法。
当子类重载父类的方法时,方法的前置条件(即入参)要比父类的入参更宽松。
当子类实现(重载/重写/实现抽象方法)父类的方法时,后置条件(返回值)要比父类更严格或者相等。

依赖倒置原则DIP(Dependence Inversion Principle)

设计代码结构时,高层模块不应该依赖底层模块,而是依赖其抽象。抽象不应该依赖细节,细节应该依赖抽象。

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

不要存在多余一个导致类变更的原因。

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

高内聚低耦合。

一个类对其他类的依赖应建立在最小的接口之上。
建立单一的接口,不建立庞大臃肿的接口。
尽量细化接口,接口中的方法应适度。

迪米特法则 Law of Demeter, LoD(最少知道原则, LKP, Least Knowledge Principle)

一个对象对其他对象应该保持最少的了解,尽量降低类与类之间的耦合。

合成复用原则 Composite Reuse Principle, CRP(组合/聚合复用原则 CARP, Composition/Aggregate Reuse Principle)

在软件复用时,要尽量先使用组合 has-a 或聚合 contains-a 等关联关系来实现。

继承称之为白箱复用,组合称之为黑箱复用。常用的依赖注入其实就是组合。

23种设计模式

工厂模式

介绍三种,简单工厂,工厂方法,抽象工厂,其中简单工厂不包含在23种中。

简单工厂:Simple Factory Pattern

posted @ 2020-12-30 00:06  Yanqiang  阅读(205)  评论(0编辑  收藏  举报