
设计模式
我对于设计模式的理解和笔记
miller.zc
记录和分享一些工作和学习中的笔记
展开
-
行为型设计模式—chain of responsibility(责任链模式)/observer(观察者模式)/mediator(中介者模式)/iterator(迭代器模式)
一、chain of responsibility(责任链模式)(1)、思想对数据的处理形成一条链条,一个节点处理完成之后再由下个节点进行处理。(2)、步骤 1. 声明fifler接口,声明fifter方法 2. 声明fifter接口实现类,实现fifter方法 3. 声明FilterChain类,对各个fifter实现对象进行管理,包括增加/删除/索引管理等 4. FilterChain类里面维护成员变量List<Ififter> fifterList,和index,dofi原创 2021-10-19 11:51:20 · 207 阅读 · 0 评论 -
行为型设计模式—strategy(策略模式)/command(命令模式)/memento(备忘录模式)/state(状态模式)
一、行为型设计模式的作用关注点在于类和对象如何协作,各自分担职责。二、strategy(策略模式)(1)、思想通过客户端构造方法,注入不同的抽象实现子类类,执行相同的客户端方法,执行不同的逻辑,替代if else,公有逻辑都在抽象类里面定义好了,所有传入不同的抽象子类都会执行同一个公有逻辑。(2)、步骤 1. 创建抽象类,创建公有的具体方法和抽象方法 2. 创建不同的子类重写抽象方法 3. 在客户端通过构造方法,注入不同的子类。 4. 调用的时候传入不同子类,就可以实现不同的私原创 2021-10-19 11:24:17 · 354 阅读 · 0 评论 -
构建型设计模式—facade(门面模式)/flyweight(享元模式)/composite(组合模式)/template(模板模式)
一、facade(门面模式)1、思想大量对象集中在一个门面对象里面,统一进行管理,进行方法调用。2、步骤 1. 声明多个普通类。 2. 创建门面类,门面对象里面通过static块初始化要管理的对象,赋值给成员变量。 3. 门面对象的方法里面按需求调用不同的成员变量方法 4. 客户端创建门面对象,通过门面对象调用方法去执行被管理对象的方法。3、步骤//心脏科public class heart { public void consult(){ System.原创 2021-10-19 10:01:24 · 225 阅读 · 0 评论 -
构建型设计模式—adapter(适配器模式)/bridge(桥接模式)/decorator(装饰者模式)
一、构建型设计模式的作用关注点在于如何将多个类或对象,整体布局成一个更强大的结构二、adapter(适配器模式)(1)、思想 当原接口不能处理某种数据的时候,就交给一个适配器去处理(类似于转接头原理)。适配器根据不同的参数,来确定用哪一个扩展的对象方法(哪一个插卡连接)来处理数据。重点就在于根据参数的不同,选择不同的处理方式,在客户端要看不出内部实现,逻辑全在适配器里判断。(2)、步骤 1. 声明原接口,创建接口方法。 2. 声明原接口实现类,持有适配器,,重写接口方法,方法里面根据原创 2021-10-18 15:11:16 · 319 阅读 · 0 评论 -
创建型设计模式—factory(工厂模式)/protoype(原型模式)/builder(建造者模式)
一、Factory Method(工厂方法模式)(1)、思想将创建对象的过程抽象成工厂接口,将需要创建的某一类对象抽象成产品抽象类。通过不同的工厂接口实现类,去创建不同的对象这样就可以在外部,利用多态的特性,工厂接口指向不同的工厂接口实现类,去创建不同的对象。(2)、步骤 1. 创建工厂接口类,声明工厂方法,方法返回抽象产品类 2. 创建抽象产品类 3. 创建不同的工厂接口实现类,重写接口方法,返回不同的产品。 4. 外部调用时,用接口指向不同的接口实现类,调用相同的方法创建不同的对原创 2021-10-18 11:47:01 · 339 阅读 · 0 评论 -
创建型设计模式—singleton(单例模式)
一、创建型设计模式的作用关注点在与怎样创建对象,将创建对象和使用对象分离二、核心思想:单例模式的核心在于要保证内存里面始终只存在一个类对象。主要从2个方面考虑:1、必须私有化构造方法,防止在外部new对象2、必须提供一个公有方法给外部调用,这个公有方法里面实现单例创建对象的逻辑三、实现方式1、利用类加载机制(急加载)(1)、思想 利用类加载机制,在类加载的时候,被static修饰的成员变量就会加载到内存中, 并且在是类对象可以保证内存中只有一个。 缺点在于在类加载的时候就会初原创 2021-10-18 11:16:52 · 163 阅读 · 0 评论