设计模式基石及类型

面向对象的三大特点:

封装:隐藏内部逻辑实现

继承:复用现有的代码

多态:改写对象的行为,实现多种类别的多种行为

 

面向对象的六大原则(SOLID)

1、单一职责原则(SRP):

Single Resposibility Principle: There should never be more than one reason for a class to change.

一个类只做一件事情,一个类只有一个引起它变化的原因

2、开闭原则:对扩展开发,对修改关闭。业务是不断变化的,当程序需要变化,升级或维护的时候,不是直接修改程序,而是使用扩展的方式,灵活的应用抽象、继承和多态,增强程序的可扩展性

3、里氏替换原则:子类必须能够替换父类,任何引用父类的地方必须能够透明的使用其子类的对象,而里氏替换主要依赖继承、多态两大特点

4、接口隔离原则:接口最小化,尽量减少一个类的public函数对外交互

5、依赖倒置原则:针对接口编程,依赖抽象而不是依赖具体实现;即抽象不依赖实现细节,实现细节依赖于抽象,从而讲静态部分和动态部分分隔开

 

设计模式的类型(5+7+11)

创建型(Creative Patterns):主要用于构建对象,以便它们从现实系统中分离出来

结构型(Structual Patterns) :主要用于在许多不同的对象之间形成大型对象结构

行为型(Behavioral Patterns):主要用于管理对象之间的算法、关系和职责

 

创建型(Creative Patterns)

1、单例模式(Singleton Pattern):保证一个类仅有一个实例,并提供一个访问它的全局访问点。 (唯一实例)

2、抽象工厂模式(Abstract Factory Pattern):创建一系列相关的对象的接口。 (抽象接口)

3、建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 (类和构建分离)

4、工厂方法模式(Factory Method Pattern):定义一个用于创建对象的接口,让子类决定将哪一个类实例化。(子类决定实例化)

5、原型模式(Prototype Pattern):用一个原型对象去创建一个指定的对象,并且通过拷贝的方式来实现创建,相当于克隆。(原型实例,拷贝)

 

结构型模型(Structural Patterns)

1、适配器模式(Adapter Pattern):将一个类的接口转换为用户希望得到的另一个接口,使得原本不兼容的接口得以协调工作。(转换,兼容接口)。

2、桥接模式(Bridge Pattern):将类的抽象部分和它的实现部分分离,从而使得它们可以独立的变化。 (抽象和实现分离)

3、装饰者模式(Decorator Pattern):动态的给一个对象添加一些额外的职责,它提供了用子类扩展功能的一个灵活的替代,比派生一个子类更加灵活。(附加职责)

4、组合模式(Composite Pattern):将对象组合成树形结构以表示“整体-部分”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。(整体-部分,树形结构)

5、外观模式(Facade Pattern):为子系统中的一组接口提供一个一致的外观,从而简化了子系统和客户端之间的松耦合关系,对应客户端而言,屏蔽了子系统的组件,降低客户端多处理的对象数目,使得子系统使用起来更加容易。(对外统一接口)

6、享元模式(Flyweight Pattern):运用共享技术有效地支持大量细粒度的对象。(系粒度,共享)

7、代理模式(Proxy Patter):为对象提供一个代理,从而控这个对象的访问。(代理控制)

 

行为型模式(Behavioral Patterns)

1、模板模式(Template Method Pattern):定义一个操作中算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。(骨架、延迟)

2、命令模式(Command Pattern):将一个请求封装为一个对象,从而使用不同的请求对客户进行参数化,将请求排队或记录请求日志,支持可撤销的操作。是一种数据驱动的设计模式。(参数化、日志,记录)

3、迭代器模式(Iterator Pattern):提供一种方法来顺序访问一个聚合对象中的各个元素而不需要暴露该对象的内部表示。(顺序访问)

4、观察者模式(Observer Pattern):定义对象建的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。(通知,自动更新)

5、中介者模式(Mediator Pattern):用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显示地相互调用,从而达到低耦合,还可以独立地改变对象间的交互。(不直接引用)

6、备忘录模式(Memento Pattern):在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以将该对象恢复到原先保存的状态。(保存,恢复)

7、解释器模式(Interpreter Pattern):给定一种语言,定义它的文法表示,并定一个解释器,该解释器用来根据语法表示来解释语言中的句子。(文法,解释)

8、状态模式(State Pattern):允许一个对象在其内部改变时改变它的行为,对象看起来似乎修改了它所属的类。(状态变成类)

9、策略模式(Strategy Pattern):定义一系列的算法,吧它们一个个封装起来,并且使他们之间可以相互替换,从而让算法可以独立于使用它的用户而变化。(算法替换)

10、职责链模式(Chain of Resposibility Pattern):为解除请求的发送者和接收者之间的耦合,而使多个对象都有机会处理这个请求。将这些对象连城一条链,并沿着这条链传递该请求,hi到有一个对象处理这个请求。(传递请求,职责,链)

11、访问者模式(Visitor Pattern):表示一个作用于某对象中的各元素的操作。使得在不改变各元素类的前提下定义作用于这些元素的新操作。(新操作)

 

posted @   unicornsir  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~
点击右上角即可分享
微信分享提示