
设计模式
学习Java常见的设计模式
飞翔荷兰号
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
设计模式七大原则
一、单一职责原则1. 传统案列Vehicle类不应该负责各种交通工具的运行,否则就会出现程序异常,违反了类的单一职责原则;package com.day.dreamer.seven.singleresponsibility;public class SingleModelFirst { public static void main(String[] args) { Vehicle bicycle = new Vehicle(); bicycle.run原创 2020-08-20 23:31:15 · 248 阅读 · 0 评论 -
工厂模式-Factory Pattern
1. 简单工厂(参数决定类型)工厂方法: 根据参数决定创建的具体的对象缺点:违反ocp原则, 即Open Closed Principle, 也就是对修改关闭,对扩展开放假如增加新的工程生产对象,则需要修改原来代码public class Test01 { public static void main(String[] args) { Factory factory = new Factory(); Vehicle car = factory.getVe原创 2021-07-05 15:59:36 · 105 阅读 · 0 评论 -
适配器模式-Adapter Pattern
1. 类适配器客户端接口不满足要求自定义一个适配器接口以及具体的适配器类,转换原来客户端接口消费客户端时,客户端的实现不可见,具体是有适配器类进行工作/** 1. 房屋买卖,买方不和卖房直接沟通,所有事情都是中介和 卖方沟通,然后将信息回馈给买方 2. 买方只和中介打交道 */public class Test01 { public static void main(String[] args) { // 使用系统提供的适配器,也可以自定义适配原创 2021-07-05 17:01:38 · 111 阅读 · 0 评论 -
组合模式-Composite Pattern
如树形菜单,文件、文件夹的管理package com.nike.erick.combine;import lombok.ToString;import java.util.ArrayList;import java.util.List;public class Test { public static void main(String[] args) { Employee ceo = new Employee("lucy", "A", 10000); .原创 2022-03-13 17:22:37 · 249 阅读 · 0 评论 -
装饰器模式-Decorator Pattern
允许向一个现有的对象添加新的功能,同时又不改变其结构创建一个装饰类,包装原有的类,并在保持类方法签名完整性的前提下,提供额外功能动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类更为灵活装饰模式是继承的一个替代模式,装饰模式可以动态扩展一个实现类的功能继承加组合- 静态代理和装饰者模式的实现过程本质上没什么区别- 装饰者模式只是为了增强原对象的方法;而代理模式主要是为了控制对象的访问package com.nike.erick.decorator;public.原创 2022-03-13 17:13:14 · 298 阅读 · 0 评论 -
外观模式-Facade Pattern
隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口降低访问复杂系统的内部子系统时的复杂度,简化客户端之间的接口package com.nike.erick.facade;public class Test { public static void main(String[] args) { Management management = new Management(new FirstApp(), new SecondApp(), new ThirdApp().原创 2022-03-13 16:42:11 · 226 阅读 · 0 评论 -
中介者模式-Mediator Pattern
提供一个中介类,中介类和具体的子系统类进行交互,避免了子系统之间的直接交互比如MVC中的controller层,可以来调用不同的service来完成业务package com.nike.erick.meditor;import java.util.Date;import java.util.HashMap;import java.util.Map;public class Test { public static void main(String[] args) { .原创 2022-03-13 16:03:52 · 734 阅读 · 0 评论 -
备忘录模式-Memento Pattern
在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。存档游戏package com.nike.erick.memento;import lombok.AllArgsConstructor;import lombok.Getter;import lombok.Setter;import java.util.ArrayList;import java.util.List;public class Test { p.原创 2022-03-13 16:06:46 · 235 阅读 · 0 评论 -
命令模式-Command Pattern
1. 命令模式- 将动作的请求者和动作的执行者分开,达到解耦的目的- 命令的发布者,并不清楚具体事谁来执行- 具体的请求封装成一个对象, 支持撤销- 角色: 命令发布者(Invoker) 命令具体执行者(Reveiver) 命令(Command) 链接二发布者和执行者...原创 2022-03-13 11:24:01 · 133 阅读 · 0 评论 -
观察者模式-Observer Pattern
一、迭代器二、观察者当对象间存在一对多关系时,则使用观察者模式当一个对象被修改时,则会自动通知依赖它的对象三、中介者提供一个中介类,中介类和具体的子系统类进行交互,避免了子系统之间的直接交互比如MVC中的controller层,可以来调用不同的service来完成业务package com.nike.erick.meditor;import java.util.Date;import java.util.HashMap;import java.util.Map;public原创 2022-03-12 01:48:04 · 275 阅读 · 0 评论 -
空对象模式-Null Object Pattern
一个空对象取代 NULL 对象实例的检查Null 对象不是检查空值,而是反应一个不做任何动作的关系这样的 Null 对象也可以在数据不可用的时候提供默认的行为原创 2022-03-13 12:48:55 · 180 阅读 · 0 评论