网站背投广告代码,wordpress接入对象存储,10_10_设计公司网站设计,小程序商城源代码设计模式通常分为三大类#xff1a;创建型、结构型和行为型。
创建型模式#xff1a;主要用于解决对象创建问题结构型模式#xff1a;主要用于解决对象组合问题行为型模式#xff1a;主要用于解决对象之间的交互问题
创建型模式
创建型模式关注于对象的创建机制#xf…设计模式通常分为三大类创建型、结构型和行为型。
创建型模式主要用于解决对象创建问题结构型模式主要用于解决对象组合问题行为型模式主要用于解决对象之间的交互问题
创建型模式
创建型模式关注于对象的创建机制提供了创建对象的灵活性。以下是Java中的创建型设计模式
类型具体名称特点创建型单例模式确保一个类只有一个实例并提供一个全局访问点。创建型工厂方法模式定义一个接口用于创建对象但由子类决定实例化哪个类。创建型抽象工厂模式提供一个接口用于创建相关或依赖对象的家族。创建型建造者模式使用多个简单的对象一步步构建一个复杂的对象。创建型原型模式通过复制现有的实例来创建新的实例。
结构型模式
结构型模式关注于如何将类或对象组合成更大的结构。以下是Java中的结构型设计模式
类型具体名称特点结构型适配器模式将一个类的接口转换成客户端所期望的另一种接口。结构型装饰器模式动态地给对象添加额外的职责。结构型代理模式为其他对象提供一种代理以控制对这个对象的访问。结构型组合模式将对象组合成树形结构以表示“部分-整体”的层次结构。结构型外观模式为子系统中的一组接口提供一个统一的高层接口。结构型桥接模式将抽象部分与实现部分分离使它们可以独立变化。结构型享元模式通过共享对象来有效地支持大量细粒度的对象。
行为型模式
行为型模式关注于对象之间的通信、交互。以下是Java中的行为型设计模式
类型具体名称特点行为型观察者模式定义了一种一对多的依赖关系状态改变时自动更新。行为型策略模式定义了一系列算法并将每一个算法封装起来。行为型命令模式将请求封装为一个对象从而使您可以用不同的请求对客户进行参数化。行为型状态模式允许一个对象在其内部状态改变时改变其行为。行为型责任链模式将请求的发送者和接收者解耦通过一系列处理对象来处理请求。行为型备忘录模式捕获对象的内部状态以便在未来恢复。行为型迭代器模式提供一种方法顺序访问一个集合对象中的元素。行为型访问者模式在不改变元素类的前提下定义作用于这些元素的新操作。行为型中介者模式通过一个中介者对象来封装一系列的对象交互。行为型解释器模式定义一种语言的文法表示并定义一个解释器来处理该语言。行为型过滤器模式允许通过一系列的处理对象来过滤请求。
六大设计原则
名称特点单一职责原则SRP一个类应该只有一个引起它变化的原因。也就是说一个类只应该有一个职责。开放-关闭原则OCP软件实体类、模块、函数等应该对扩展开放对修改关闭。即通过添加新代码扩展功能而不是修改现有代码。里氏替换原则LSP子类对象应该能够替换父类对象程序的功能不受影响。即子类必须能够完全替代父类。接口隔离原则ISP一个类对另一个类的依赖应该建立在最小的接口上。即客户端不应该依赖它不需要的接口。依赖倒置原则DIP高层模块不应该依赖低层模块二者都应该依赖抽象。即应该依赖于接口而不是具体实现。合成复用原则CRP尽量使用组合/聚合的方式而不是使用继承。即优先选择组合而不是继承来实现代码复用。
汇总表格
类型具体名称特点创建型单例模式确保一个类只有一个实例并提供一个全局访问点。工厂方法模式定义一个接口用于创建对象但由子类决定实例化哪个类。抽象工厂模式提供一个接口用于创建相关或依赖对象的家族。建造者模式使用多个简单的对象一步步构建一个复杂的对象。原型模式通过复制现有的实例来创建新的实例。结构型适配器模式将一个类的接口转换成客户端所期望的另一种接口。装饰器模式动态地给对象添加额外的职责。代理模式为其他对象提供一种代理以控制对这个对象的访问。组合模式将对象组合成树形结构以表示“部分-整体”的层次结构。外观模式为子系统中的一组接口提供一个统一的高层接口。桥接模式将抽象部分与实现部分分离使它们可以独立变化。享元模式通过共享对象来有效地支持大量细粒度的对象。行为型观察者模式定义了一种一对多的依赖关系状态改变时自动更新。策略模式定义了一系列算法并将每一个算法封装起来。命令模式将请求封装为一个对象从而使您可以用不同的请求对客户进行参数化。状态模式允许一个对象在其内部状态改变时改变其行为。责任链模式将请求的发送者和接收者解耦通过一系列处理对象来处理请求。备忘录模式捕获对象的内部状态以便在未来恢复。迭代器模式提供一种方法顺序访问一个集合对象中的元素。访问者模式在不改变元素类的前提下定义作用于这些元素的新操作。中介者模式通过一个中介者对象来封装一系列的对象交互。解释器模式定义一种语言的文法表示并定义一个解释器来处理该语言。过滤器模式允许通过一系列的处理对象来过滤请求。