设计模式
湘水友独
coding
展开
-
(十九)观察者模式
目录基本简介基本思路基本简介定义:在对象之间定义一种一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象都会接收到通知,并自动更新基本思路...原创 2019-01-13 22:07:59 · 164 阅读 · 0 评论 -
(七)适配器模式
文章目录一、概念二、基本内容三、代码示例(1)定义被适配的类(2)定义目标接口(3)定义适配类(4)测试调用(5)对象适配器四、类图五、应用场景一、概念将一个类的接口,转化成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间“对象”适配器:使用组合“类”适配器:使用继承将一个接口转化成另一个接口二、基本内容Target(目标抽象类):目标抽象类定义客户所需接口,可...原创 2019-10-05 23:26:59 · 200 阅读 · 0 评论 -
(九)代理模式
文章目录一、概念二、基本内容三、代码示例(1)创建公共接口(2)创建代理对象(3)创建真实对象(4)测试调用四、类图五、应用场景一、概念为另一个对象提供一个替身或占位符以控制对这个对象的访问使用代理模式创建代表对象,让代表对象控制某对象的访问,被代理的对象可以是远程的对象、创建开销大的对象或需要安全控制的对象控制对象访问二、基本内容RealSubject通常是真正做事的对象,pr...原创 2019-10-05 23:24:09 · 151 阅读 · 0 评论 -
(十五)策略模式
文章目录一、概念二、编写步骤三、案例(1)定义策略接口(2)定义策略实现类(3)定义环境角色(4)测试调用四、类图五、应用场景一、概念定义了算法族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化独立于使用算法的客户简化if-else操作,方便扩展本质:少用继承,多用组合二、编写步骤1、定义抽象策略接口2、编写具体的策略实现类3、定义环境角色,持有策略引用三、案例...原创 2019-10-05 23:22:09 · 127 阅读 · 0 评论 -
(二十三)模板方法模式
文章目录一、概念二、基本内容三、在父类中增加钩子四、案例(1)定义抽象父类(2) 定义子类(3)测试调用五、类图六、应用场景七、和策略模式比较一、概念在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤二、基本内容1、父类抽象出子类共有的方法,并自己实现他2、子类实现各自不同的业务3、父类实现的方法按照一...原创 2019-10-05 23:20:54 · 149 阅读 · 0 评论 -
(五)抽象工厂模式
一、概念提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类使用对象组合,对象的创建被实现在工厂接口所暴露出来的方法中二、特点抽象工厂定义了一个接口,所有的具体工厂都必须实现此接口,这个接口包含了一组方法来生产产品抽象工厂模式最大的好处是易于交换产品系列,由于具体工厂类,在一个应用中只需要在初始化的时候出现一次,这就使得改变一个应用的具体工厂变得非常容易抽象工厂模式...原创 2019-10-05 23:13:14 · 128 阅读 · 0 评论 -
(二)原型模式
一、概念使用原型实例指定将要创建的对象类型,通过复制这个实例创建新的对象二、用途和优缺点用途:在对象构建过程比较耗时时,可以利用当前系统中已经存在的对象作为原型,对其进行克隆,躲避初始化过程,使得新对象的创建时间大大减少。优点性能良好,Java自带的原型模式是基于内存二进制流的拷贝,比直接new一个对象性能上提升了许多向客户隐藏制造新实例的复杂性简化对象创建的过程,提高效率...原创 2019-10-05 23:11:04 · 121 阅读 · 0 评论 -
(四)工厂方法模式
一、概念工厂方法模式是对简单工厂模式进一步的解耦。在工厂方法模式中是一个子类对应一个工厂类,而这些工厂类都实现于一个抽象接口使用继承,把对象的创建委托给子类,子类实现工厂方法来创建对象二、优缺点比较简单工厂模式工厂模式中,要增加产品类时也要相应地增加工厂类,客户端的代码也增加了不少。工厂方法把简单工厂的内部逻辑判断转移到了客户端代码来进行工厂方法模式克服了简单工厂会违背开-闭原则...原创 2019-10-05 23:09:35 · 129 阅读 · 0 评论 -
(三)简单工厂
简介工厂方式模式简单工厂是用来封装对象的创建,定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类简单工厂简单工厂算不上是一个设计模式,更趋向于是一种编程习惯,我们通过创建一个工厂类,来封装对对象的创建。public class PizzaStore{ public Pizza orderPizza(String type){ ...原创 2019-04-27 20:14:56 · 150 阅读 · 0 评论 -
(一)单例模式
定义实现思路实现方式1.饿汉式(静态变量)2.饿汉式(静态代码块)3.懒汉式(非线程安全)4.懒汉式(线程安全,同步方法)5.懒汉式(线程安全,同步代码块)6.双重检查机制7.静态内置类8.枚举定义单例模式是设计模式中最简单的一种模式之一,它指的是一个类只有一个实例,而且自行实例化并运用到整个系统中,这个类称为单例类,提供全局的方法进行访问。构造单例类...原创 2019-01-09 22:16:17 · 144 阅读 · 0 评论 -
设计模式概览
设计模式概览一、设计模式的分类二、设计模式的六大准则三、Java中的23种设计模式一、设计模式的分类总的来说设计模式分为3大类创建型模式(5种):工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式结构型模式(7种):适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式行为型模式(11种):状态模式、策略模式、访问者模式、迭代器模式、命令模式、观察者模式、中介...原创 2019-01-09 22:10:52 · 1165 阅读 · 0 评论 -
(八)装饰者模式
一、概念动态的将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案控制对象行为二、基本内容适用场景:扩展一个类的功能或者给一个类添加附加职责给一个对象动态的添加功能,或动态撤销功能。优点:继承的有力补充,比继承灵活,不改变原有对象的情况下给一个对象扩展功能通过使用不同装饰类以及这些类的排列组合,可以实现不同的效果符合开闭原则缺点:...原创 2019-10-05 23:41:23 · 149 阅读 · 0 评论