设计模式
文章平均质量分 50
设计模式学习记录
pp_lan
这个作者很懒,什么都没留下…
展开
-
设计模式【十四】-模板模式
1. 作用模板模式:定义父类,start方法(本文以该方法为例)定义所有抽象方法的执行顺序,子类覆写抽象方法2. 代码2.1 功能类package com.hz.design.template;/** * @fileName: Game * @version: * @description: * @author: pp_lan * @date: 2022/3/31 */public abstract class Employee { protected abs原创 2022-03-31 11:11:39 · 324 阅读 · 0 评论 -
设计模式【十三】-备忘录模式
1. 作用在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态2. 代码2.1 备忘录实现类package com.hz.design.memo;/** * @fileName: Memo * @version: * @description: * @author: pp_lan * @date: 2022/3/29 */public class Memo { private String state原创 2022-03-29 14:15:23 · 537 阅读 · 0 评论 -
设计模式【十二】-迭代器模式
1. 作用比如List的iterator,可以迭代获取存放的对象,一般存放的时候可以直接用List。但是如果需要进行特殊定制化处理,我们可以参考迭代器模式进行设计2. 代码2.1 迭代器对象package com.hz.design.iterator;/** * @fileName: BusinessIterator * @version: * @description: * @author: pp_lan * @date: 2022/3/29 */public in原创 2022-03-29 10:26:53 · 524 阅读 · 0 评论 -
设计模式【十一】-解释器模式
1. 作用适用于判断逻辑比较多或者表达式比较复杂的业务情况2. 代码2.1 功能类package com.hz.design.explain;/** * @fileName: Expression * @version: * @description: * @author: FH * @date: 2022/3/28 */public interface Expression { boolean explain(Object o);}packa原创 2022-03-29 09:09:51 · 332 阅读 · 0 评论 -
设计模式【十】-责任链模式
1. 作用解耦,每一阶段只需关心当前的处理,处理完后推送下一节点即可2. 实现逻辑定义统一接口及方法;子类实现方法如execute,并定义成员变量nextNode;应用时候,创建子类实例,并给实例赋值nextNode;调用方法execute,execute内部自己方法执行完成后,执行nextNode的execute犯法.3. 代码3.1 责任链对象package com.hz.design.responsechain.logger;/** * @descripti原创 2022-03-28 15:50:24 · 354 阅读 · 0 评论 -
Event-Driven架构设计消息处理系统
基于Event-Driven架构设计实现如下需求* 1. 输入2个数 x 和 y, 并进行相加* 2. 对1中的结果进行格式化* 3. 将2中格式化的结果输出(打印)原创 2022-03-25 13:59:28 · 585 阅读 · 0 评论 -
设计模式【九】适配器模式
1. 原理定义接口,里面包含主要的方法; 定义接口实现类,不同的实现类对接口中的方法进行定向实现,不需要的方法不做任务处理,达到适配的目的2. 代码/** * @author: pp_lan on 2020/3/23. * 班级节目:男孩唱歌、女孩跳舞 */interface Student { /** * 唱歌 */ void sing(); /** * 跳舞 */ void dance();}cla原创 2022-03-18 15:20:29 · 242 阅读 · 0 评论 -
设计模式【八】-装饰器模式
1. 原理新建对象,将要包装的对象作为成员变量注入,并在要包装的方法前后添加包装处理2. 代码Person/** * @author: pp_lan * @date: 2022/3/19 */public interface Person { void speak();}Chinese/** * @author: pp_lan * @date: 2022/3/19 */public class Chinese implements Person {原创 2022-03-19 11:49:33 · 328 阅读 · 0 评论 -
设计模式【七】- 过滤器模式
1. 原理定义接口方法根据不同的规则自定义过滤方法创建过滤实例,调用过滤方法,过滤数据2. 代码2.1 过滤对象Person/** * @description: * @author: pp_lan * @date: 2022/3/18 */public class Person { /** * 姓名 */ private String name; /** * 是否男性 */ private ..原创 2022-03-18 17:11:36 · 3223 阅读 · 0 评论 -
设计模式【六】-桥接模式
1. 原理多个独立的功能单元(打开导航openMap、开车drive)都统一到driverCar这个方法内部2. 代码/** * @author: pp_lan on 2020/3/23. */public class BrigeDemo { interface Car { void drive(); } class Jeep implements Car { @Override public void d原创 2022-03-18 15:34:57 · 438 阅读 · 0 评论 -
设计模式【五】观察者模式
1. 代码示例import java.util.ArrayList;import java.util.List;/** * @authod: pp_lan on 2020/3/25. * 使用场景:进行广播通知。如:拍卖出价,通知其他人进行出价 */public class ObserveDemo { static class Subject { pr...原创 2020-03-25 17:15:24 · 92 阅读 · 0 评论 -
设计模式【四】享元模式
1. 代码示例/** * @authod: pp_lan on 2020/3/20. * 享元模式: 共享对象,直接返回在内存中已有的对象,避免重新创建。 */public class FlyWeight { public static void main(String[] args) { CarFactory.Car benz1 = CarFactory....原创 2020-03-20 17:37:36 · 92 阅读 · 0 评论 -
设计模式【三】原型模式
1. 代码示例import java.io.*;import java.util.ArrayList;import java.util.List;/** * @authod: pp_lan on 2020/3/20. * 原型模式:浅复制、深复制 */public class ProtoType { /** * 深复制 实现序列化接口Serializabl...原创 2020-03-20 16:27:26 · 82 阅读 · 0 评论 -
设计模式【二】代理模式
1. 静态代理/** * @authod: pp_lan on 2020/3/20. */public class StaticProxy { interface Car { void drive(); } static class Benz implements Car { @Override public v...原创 2020-03-20 14:48:01 · 85 阅读 · 0 评论 -
设计模式【一】工厂模式 & 单例模式 & 建造者模式
1. 抽象工厂模式public class AbstractFactory { interface Car { void driver(); } class Benz implements Car { @Override public void driver() { System.out.pr...原创 2020-03-20 13:53:44 · 128 阅读 · 0 评论 -
设计模式【总纲】
分类1. 创建型工厂、抽象工厂、单例、建造者、原型模式2. 结构型适配器、桥接、过滤器、组合、装饰器、外观、享元、代理3. 行为型责任链、命令、解释器、迭代器、中介者、备忘录、观察者、状态、空对象、策略、模板、访问者原则1. 开放闭合原则对扩展开放、对修改闭合2. 单一职责原则一个方法只负责一件事情。3. 里氏替换原则父类的特性在子类中仍然可以存...原创 2020-03-23 09:59:26 · 113 阅读 · 0 评论