12 2021 档案
摘要:状态模式:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类 通俗解释:改变一个状态值时,其行为发生了改变。行为也就是做了什么。 下面一个例子:(大话设计模式的例子) 一天之中的工作状态随着时间改变 早晨-精神百倍 中午-犯困 下午-状态不错 (完成工作的情况) 傍晚-下班 (没
阅读全文
摘要:Subject:抽象主题,定义增加,删除,以及通知观察者的方法 Observer:抽象观察者,定义接口,在被通知要更新时更新自己 ConcreteSubject:主题的实现,内部存在一个存放所有观察者引用的集合 ConcreteObserver:观察者的实现 核心就是 主题中保存着观察者的集合,当需
阅读全文
摘要:抽象工厂可以在工厂方法模式上来理解 工厂方法模式是对简单工厂的进一步优化 首先,简单工厂模式内部的if或者case语句是不满足开放-封闭原则的 所以对简单工厂模式进一步优化,出现了工厂方法模式。 工厂方法模式将工厂抽象,实例化出不同的工厂,使得满足了开放-封闭原则 抽象工厂是在工厂方法模式上的又一部
阅读全文
摘要:传统建造者模式 Builder:定义创建的过程,一般是抽象类 ConcreteBuilder:真正的构建过程,重写Builder中的方法,相当于填充骨架 Director:指挥类,内部封装了构建的过程。作用是对外提供创建对象的接口,隐藏了创建对象的细节 代码: //Product @Data cla
阅读全文
摘要:外观模式 为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得子系统更容易使用。 例子: 假如我现在要买3支股票,等收益了在卖出,那么现在是这样的 1.定义三只股票 //股票1 class shares1{ public void buy1(){ System.out.pr
阅读全文
摘要:下面给一个晚餐安排的代码例子 要展示西方和东方的晚餐 先用最容易想到的方式实现 先定义一个晚餐安排抽象类,定义吃,喝和展示三个抽象方法 abstract class DinnerArrange{ public abstract void eat(); public abstract void dri
阅读全文
摘要:原型模式: 原型模式其实就是从一个对象在创建另一个可定制的对象,而且不需要知道任何创建的细节 对于java而言,也就是不通过类的构造方法来生成对象,而是基于对象来创建另一个对象 Cloneable接口和clone方法,就是java语言对于原型模式的实现,开箱即用 在使用构造方法创建对象开销很大的情况
阅读全文
摘要:subject接口,定义要做什么 然后RealSubject和Proxy都实现Subject接口并实现里面的方法 但是Proxy内部有一个RealSubject的引用,并且Proxy的方法全部调用RealSubject的引用的方法 从调用者来看,它调用是Proxy的方法,但实际调用的还是RealSu
阅读全文
摘要:工厂方法模式个人理解是在简单工厂模式上继续做了抽象 将工厂抽象出来,由一个工厂创建不同实例变为多个工厂创建多个实例 原来是这种方式:一个工厂能生产多种型号,告诉工厂要哪种,返回哪种 工厂方法模式 就变成了下面这种 将工厂拆分,想要什么型号的,找对应的工厂 代码实现: //定义汽车的抽象类 abstr
阅读全文
摘要:Strategy:抽象出要做什么 ConcreteStrategyA,ConcreteStrategyB,ConcreteStrategyC:具体的实现,实现出要做的事情, Context:维护一个对Strategy对象的引用。可定义一个接口来让Strategy访问它的数据。 策略模式的定义:定义算
阅读全文
摘要:我觉得工厂模式是特别简单的一个模式 说白了就是根据不同的情况实例化并返回不同的对象 给出一个计算器的例子 1 import lombok.Data; 2 3 /** 4 * @author wrj 5 * @description 6 * @Date 2021/12/2 10:16 上午 7 */
阅读全文
摘要:结构图解释: Component 可以是接口,也可以是抽象类,目的是指明Operation(),也就是规范要做什么。 ConcreteComponent 一个类,继承或者实现Component。是被装饰的代表,例如饭,奶茶。 Decorator类 装饰类,内部一定有Component或者Concre
阅读全文