设计模式之三大类

简介: 设计模式之三大类

设计模式分类


1.创建型模式(Creational Patters)

·Fatory Method

 - 本质:用一个Virtual method 完成创建过程

·Abstract Factory

 - 一个product族的factory method 构成了一个factory接口

·Protype

 - 通过product原型来构造product,Clone+prototype manager

·Buolder

 -通过一个构造算法和builder接口把构造过程与客户隔离开

·Singleton

 -单实例类型,如何构造这个单个实例?如何访问这单个实例?

·singleton模式提供对象的单一入口提供了帮助

·AbstractFactory和FactoryMethod模式在功能上比较类似,都是用来处理对象的创建的,但应用在不同的层面上

·Builder模式用来处理对象创建的细节,在两个工厂模式中都没有涉及到对象创建的具体细节,都是通过接口来返回一个给定类型的对象,而Builder模式则需要对创建一个给定类型的过程进行建模。这对创建复杂对象很有用,使得创建对象的算法独立与对象各个组成部分的创建

·Prototype模式使用原型机制,通过创建简单原型的拷贝来创建对象


2.结构型模式(Structural Patterns)

·Adapter 、 bridge 、 facade

 -adapter用于两个不兼容接口之间的转接

 -bridge用于将一个抽象与多个可能实现连接起来

 -facade 用于为复杂的子系统定义一个新的简单易用的接口

·composite 、decorator、proxy

 - composite 用于构造对象组合结构

 - decorator 用于对象增加新的职责

 - proxy 为目标对象提供一个替代者


3.行为型模式(Behavioral Patterns)

·Command

 -用对象封装命令,使得命令可以被传递、记录、排队等

·Iterator

 -把对聚合体对象的访问封装起来

·Observer

 -建立起一对多的通信模型,特别适合于更新通知和事件模型

·Strategy

 -把一个对象或者类的某些行为封装到另一个单独的对象中

·Visitor

 -把对一个结构模型的操作单独组织到一个类中

·Chain of Responsibility

 -请求的处理模式,沿着链传递,decouple发送方和接收方

·Interpreter

 -在类层次结构中,在特定环境的”interpret”过程

·Mediator

 -用一个mediator来的couple各同等单元

·Memento

 -在对象之外保存对象的内部状态

·State

 -把一个对象的状态独立起来,动态可变换状态对象的类型

·Template Method

 -在基类中定义算法的骨架,把某些细节延迟到子类中

·Strategy 、 Iterator 、Mediator 、State 、Command

 -用一个对象来封装某些特性,比如变化、交互、状态、行为、命令

·Mediator 、Observer

 - Observer建立起subject和observer之间的送耦合连接

 -mediator把约束限制集中起来->中心控制

·Command 、Chain of Responsibility 、interpreter

 -command模式侧重于命令的总体管理

 -Chain of Responsibility 侧重于命令被正确处理

 -interpreter用于复合结构中操作的执行过程


3.1命令模式(The Command  Pattern)

·Client:创建一个ConcreteCommand 对象,调用者’并确定其接收者。‘

·Command:生命一个给所有具体命令类的接口

·ConcereCommand:定义一个接收者和行为之间的弱耦合,实现exectute()方法,该方法调用接收者响相应的操作

·Invoker:伏在调用命令对象执行请求

·Receiver:具体实施一个请求

举例:

毛利五郎上厕所,发现厕所没纸了,让柯南送纸。


2.1适配器模式

·现实世界中充满适配器!

·面向对象适配器


2.1.1Object and Class Adapters


目录
相关文章
|
设计模式 存储 uml
C++ 设计模式实战:外观模式和访问者模式的结合使用,派生类访问基类的私有子系统
C++ 设计模式实战:外观模式和访问者模式的结合使用,派生类访问基类的私有子系统
186 1
|
设计模式 缓存 安全
【设计模式】单例模式:确保类只有一个实例
【设计模式】单例模式:确保类只有一个实例
229 0
|
设计模式 安全 Java
JAVA设计模式1:单例模式,确保每个类只能有一个实例
JAVA设计模式1:单例模式,确保每个类只能有一个实例
330 0
|
设计模式 SQL 安全
PHP中的设计模式:单例模式的深入探索与实践在PHP开发领域,设计模式是解决常见问题的高效方案集合。它们不是具体的代码,而是一种编码和设计经验的总结。单例模式作为设计模式中的一种,确保了一个类仅有一个实例,并提供一个全局访问点。本文将深入探讨单例模式的基本概念、实现方式及其在PHP中的应用。
单例模式在PHP中的应用广泛,尤其在处理数据库连接、日志记录等场景时,能显著提高资源利用率和执行效率。本文从单例模式的定义出发,详细解释了其在PHP中的不同实现方法,并探讨了使用单例模式的优势与注意事项。通过对示例代码的分析,读者将能够理解如何在PHP项目中有效应用单例模式。
|
设计模式 SQL 安全
PHP中的设计模式:单例模式的深入探索与实践在PHP的编程实践中,设计模式是解决常见软件设计问题的最佳实践。单例模式作为设计模式中的一种,确保一个类只有一个实例,并提供全局访问点,广泛应用于配置管理、日志记录和测试框架等场景。本文将深入探讨单例模式的原理、实现方式及其在PHP中的应用,帮助开发者更好地理解和运用这一设计模式。
在PHP开发中,单例模式通过确保类仅有一个实例并提供一个全局访问点,有效管理和访问共享资源。本文详细介绍了单例模式的概念、PHP实现方式及应用场景,并通过具体代码示例展示如何在PHP中实现单例模式以及如何在实际项目中正确使用它来优化代码结构和性能。
243 2
|
设计模式 Go
Go语言设计模式:使用Option模式简化类的初始化
在Go语言中,面对构造函数参数过多导致的复杂性问题,可以采用Option模式。Option模式通过函数选项提供灵活的配置,增强了构造函数的可读性和可扩展性。以`Foo`为例,通过定义如`WithName`、`WithAge`、`WithDB`等设置器函数,调用者可以选择性地传递所需参数,避免了记忆参数顺序和类型。这种模式提升了代码的维护性和灵活性,特别是在处理多配置场景时。
265 8
|
设计模式 安全 Java
Java中的单例模式是一种设计模式,它保证一个类只有一个实例,并提供一个全局访问点
Java单例模式确保类仅有一个实例,并提供全局访问点。常见实现包括: - 饿汉式:静态初始化,线程安全。 - 懒汉式:延迟初始化,需同步保证线程安全。 - 双重检查锁定:优化懒汉式,减少同步开销。 - 静态内部类:延迟加载,线程安全。 - 枚举:简洁线程安全,不适用于复杂构造。 - 容器实现:如Spring框架,用于依赖注入。选择依据需求,如延迟加载、线程安全和扩展性。
205 10
|
设计模式 存储 安全
18 Java反射reflect(类加载+获取类对象+通用操作+设计模式+枚举+注解)
18 Java反射reflect(类加载+获取类对象+通用操作+设计模式+枚举+注解)
401 0
|
设计模式
设计模式-类适配器模式
设计模式-类适配器模式
113 0
|
设计模式 安全 Java
高级应用:内部类的设计模式与内部类与外部类之间的交互
高级应用:内部类的设计模式与内部类与外部类之间的交互
123 0