设计模式
文章平均质量分 76
码生剑气
纸上得来终觉浅,绝知此事要躬行
展开
-
设计模式之责任链模式
定义 责任链(Chain of Responsibility)模式的定义:为了避免请求发送者与多个请求处理者耦合在一起,于是将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。 结构 职责链模式主要包含以下角色。 抽象处理者(Handler)角色:定义一个处理请求的接口,包含抽象处理方法和一个后继连接。 具体处理者(Concrete Handler)角色:实现抽象处理者的处理方法,判断能否处理本次请求,如果可以处理请求则处理,否则原创 2021-10-07 18:00:00 · 121 阅读 · 0 评论 -
设计模式之策略模式
定义 在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。 在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。 结构 ● Context 封装角色 它也叫做上下文角色,起承上启下封装作用,屏蔽高层模块对策略、算法的直接访问,封装可能存在的变化。 ● Strategy 抽象策略角色 策略、算法家族的抽象,通常为接口,定义每个策略或算法必须具有的方法原创 2021-10-07 07:00:00 · 119 阅读 · 0 评论 -
设计模式之模板方法模式
定义 定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 结构 AbstractClass 叫做抽象模板,它的方法分为两类: ● 基本方法 基本方法也叫做基本操作,是由子类实现的方法,并且在模板方法被调用,包含以下几种类型: 抽象方法:在抽象类中声明,由具体子类实现。 具体方法:在抽象类中已经实现,在具体子类中可以继承或重写它。 钩子方法:在抽象类中已经实现,包括用于判断的逻辑方法和需要子类重写的空方法两种。 ● 模板方法 可以有一个或原创 2021-10-06 22:16:40 · 86 阅读 · 0 评论 -
设计模式之适配器(Adapter)模式
7、适配器(Adapter)模式 定义 适配器模式属于结构型模式,将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。 适配器模式分为类适配器模式和对象适配器模式,前者类之间的耦合度比后者高,且要求程序员了解现有组件库中的相关组件的内部结构,所以应用相对较少些。 结构 适配器模式(Adapter)包含以下主要角色: 目标(Target)接口:当前系统业务所期待的接口,它可以是抽象类或接口。 适配者(Adaptee)类:它是被访问和适配的现存组件库中的组件接口原创 2021-09-30 22:28:12 · 114 阅读 · 0 评论 -
设计模式之单例模式
6、单例模式 定义 单例模式(Singleton Pattern):单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。 单例模式的要点有三个:一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。单例模式是一种对象创建型模式。单例模式又名单件模式或单态模式。 主要解决:一个全局使用的类频繁地创建与销毁。 何时使用:当您想控制实例数目,节省系统资源的时候。 如何解决:判断系统是否已经有这个单例,如果有则返回,原创 2021-09-25 19:05:41 · 86 阅读 · 0 评论 -
五、建造者模式
5、建造者模式 代码仓库:https://gitee.com/jerry_top/wm_design_patterns.git 定义 将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。 分离了部件的构造(由Builder来负责)和装配(由Director负责)。 从而可以构造出复杂的对象。这个模式适用于:某个对象的构建过程复杂的情况。 由于实现了构建和装配的解耦。不同的构建器,相同的装配,也可以做出不同的对象;相同的构建器,不同的装配顺序也可以做出不同的对象。也就是实现了构建算法、装配算原创 2021-07-24 14:00:15 · 187 阅读 · 2 评论 -
工厂模式之抽象工厂模式
定义 是一种为访问类提供一个创建一组相关或相互依赖对象的接口,且访问类无须指定所要产品的具体类就能得到同族的不同等级的产品的模式结构。 抽象工厂模式是工厂方法模式的升级版本,工厂方法模式只生产一个等级的产品,而抽象工厂模式可生产多个等级的产品。 为了更清晰地理解抽象工厂模式,需要先引入两个概念: 产品等级结构 :产品等级结构即产品的继承结构,如一个抽象类是水果,其子类有苹果、香蕉,则抽象水果与具体名称的水果之间构成了一个产品等级结构,抽象水果是父类,而具体名称的水果是其子类。 产品族 :在抽象工厂模式中,原创 2021-07-06 20:12:31 · 214 阅读 · 1 评论 -
工厂模式之工厂方法模式
定义 定义一个用于创建对象的接口,让子类决定实例化哪个产品类对象。工厂方法使一个产品类的实例化延迟到其工厂的子类。 结构 工厂方法模式的主要角色: 抽象工厂(Abstract Factory):提供了创建产品的接口,调用者通过它访问具体工厂的工厂方法来创建产品。 具体工厂(ConcreteFactory):主要是实现抽象工厂中的抽象方法,完成具体产品的创建。 抽象产品(Product):定义了产品的规范,描述了产品的主要特性和功能。 具体产品(ConcretePro原创 2021-07-04 21:55:49 · 107 阅读 · 2 评论 -
工厂模式-简单工厂模式
工厂模式 1、普通写法 类图 案例 public abstract class Fruit { abstract String getName(); void wash(){ System.out.println("洗水果"); } void cut(){ System.out.println("切水果"); } } public class AppleFruit extends Fruit { @Override原创 2021-07-04 16:31:59 · 198 阅读 · 2 评论