![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
北朽暖栀24
这个作者很懒,什么都没留下…
展开
-
策略模式——简单案例和交互分析
case: 一个程序有多种算法 context做一些准备的工作留给策略类调用 使用的场景 策略类的交互 将content传到方法策略类里面。原创 2020-11-30 19:24:14 · 118 阅读 · 0 评论 -
桥接模式——案例分析
桥接模式的本质就是把变化的部分分离,作为一个成员变量组合在类中。 case 比如咖啡机,如下,有以下几种咖啡 增加大小杯的划分,如下: 如果多一种咖啡的话,需要两边都加入,这样修改起来很麻烦 所以将两者分开 将coffeekind聚合到CoffeeCup里面。这里是抽象类之间的编程,依赖于抽象,而不依赖于具体的类。 这样在两个维度上修改的时候互不影响。 ...原创 2020-11-30 15:53:30 · 155 阅读 · 0 评论 -
工厂模式(简单工厂,工厂方法,抽象工厂)——基于headfirst的案例分析
简单工厂方法 pizzastore这个类用来制作pizza(获得pizza对象并进行各种流程) 简单工厂类,用if——else制造对象 pizza类,有制作pizza的各种方法 具体的pizza类,继承pizza类 为什么要有简单工厂。如果没有工厂,那么需要在pizzastore里面new具体的pizza对象,这样就依赖具体的实现了。所以将pizza进行抽象,这样就不依赖于实现 核心就是不依赖 类图(类似于下面这个) 这里pizzastore相当于客户端逻辑的一部分(因为拿到对象还加工了一下,所以原创 2020-11-30 13:04:00 · 75 阅读 · 0 评论 -
单例模式-基于headfirst设计模式的总结
1.经典的单例模式——懒汉式 public class Singleton { private static Singleton uniqueInstance; private Singleton() {} public static Singleton getInstance() { if (uniqueInstance == null) { uniqueInstance = new Singleton(); } return uniqueInstance; } /原创 2020-11-28 11:12:20 · 97 阅读 · 1 评论 -
模板方法模式——基于headfirst的案例讲解
模板方法存在的意义是为了有一个流程,让一些流程相似的事物按照流程走 ,流程中不同的步骤可以列为抽象方法,让子类重写。 就是定义一个算法的骨架,而一些步骤延迟到子类中。模板方法使得子类不改变算法结构的情况下,重新定义算法中的某些步骤。 case1 不带钩子的模板方法 现在将煮咖啡和煮茶视为一个模板,因为brew和addCondiments步骤不相同,所以列为抽象方法。 CaffeineBeverage类,里面有模板方法prepareRecipe(),这里列为final public abstract c原创 2020-11-28 20:22:39 · 114 阅读 · 0 评论 -
适配器模式——基于headfirst的案例分析
适配器模式是通过编写适配器完成两个不同的类之间的相互转换 有两种适配器模式:类适配器和对象适配器,这篇的案例主要是适配器类 case1 将turkey转化为duck duck接口 public interface Duck { public void quack(); public void fly(); } turkey接口 public interface Turkey { public void gobble(); public void fly(); } Turkey接口实现 publi原创 2020-11-28 19:48:02 · 125 阅读 · 1 评论 -
命令模式——基于headfirst的案例分析
先分析一个headfirst的简单case 命令 public interface Command { public void execute(); } 受控制的实体:灯(接收者) public class Light { public Light() { } public void on() { System.out.println("Light is on"); } public void off() { System.out.println("Light is off");原创 2020-11-28 13:45:23 · 73 阅读 · 1 评论