![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
Java设计模式
小阳同学^_^
是行动让潜能无限
展开
-
8、观察者(watcher)模式
观察者模式简介 观察者模式 观察者模式有2种角色 被观察者 被观察者的入参对象,都是观察者的抽象接口 观察者 观察者的入参对象,都是被观察者的抽象接口 场景 微博 1)粉丝关注明星的账号 2)粉丝取消关注 3)明星的动态通知粉丝 被观察者接口 /** * 被观察者,发布者 接口 * * * */ public interface Publisher { /** * 添加粉丝 * 入参为 观察者/订阅者 的抽象接口 * * */ pub原创 2020-05-12 23:09:42 · 301 阅读 · 1 评论 -
7、适配器(Adaptor)模式
适用场景 用电器做例子,笔记本电脑的插头一般都是三相的,即除了阳极、阴极外,还有一个地极。而有些地方的电源插座却只有两极,没有地极。电源插座与笔记本电脑的电源插头不匹配使得笔记本电脑无法使用。这时候一个三相到两相的转换器(适配器)就能解决此问题,而这正像是本模式所做的事情。 适配器简介 角色: 源类(Adaptee)角色:用户想要适用这个类,但是这个类中没有用户期望的sampleOperati...原创 2020-04-21 22:37:54 · 308 阅读 · 0 评论 -
6、代理模式(静态,jdk,cjlib)
静态代理模式场景 工人(张三)讨薪场景 在开庭之前委托律师 开庭的时候,用之前已经定好的律师 实现 诉讼的接口类(行为接口类) 被代理的类(工人提供证明的类) 代理律师的类 产生代理对象的静态工厂类 /** * 静态代理行为接口类 * * */ public interface LawsuitService { /** * 提交证明 ...原创 2020-04-19 18:17:44 · 156 阅读 · 0 评论 -
5、责任链模式
什么是责任链模式 责任链模式:顾名思义,是一条具有处理事务能力的一个链条。每个链条中的节点根据条件,都有机会处理事件。如果某个节点处理完了,就可以进入下个节点或者返回 责任链模式:符合开闭原则。如果要增加节点,直接继承抽象类即可。 责任链模式角色 1、必须具备一个抽象的处理类基类 该基类中具有1个必备的属性和1个必备的方法 属性:该节点的下一个节点 方法:处理事务的方法。 2、责任链的节点。 1)...原创 2020-04-16 23:40:45 · 109 阅读 · 0 评论 -
4、建造者模式(创建型模式)
建造者模式适用场景 1、在接口中,所有的抽象的行为(方法),不需要全部实现 例如:电动车和汽油车。电动车的行为是充电。而汽油车的行为是加油 2、符合设计模式的单一职责和开闭原则 例如:新增卡车的时候,还需要修改原来的代码 3、不想创建很多的构造方法 例如:创造电动车和汽油车。会建2个构造方法,以后扩展的话,还会建很多的构造方法 建造者模式成员 1、Product (产品类):需要为其构建对象的类,...原创 2020-04-06 15:49:43 · 122 阅读 · 0 评论 -
3、工厂模式(工厂方法模式)
工厂模式应用场景 对可扩展的模块,不会动以前的代码,不会在以前的代码中出现if else ,不打破设计模式的单一职责原则和开闭原则。 所以说,如果有新的扩展,会继承抽象类,重新创建新的工厂类 工厂方法模式 必备要素: 1、具有抽象的工厂基类(该类用abstract修饰) 将该领域的行为(方法)抽象出来,abstract 类来为行为创建了一个模板。规范其流程, 主流程中有N个子流程。其中一部分个性化...原创 2020-04-05 13:23:05 · 134 阅读 · 1 评论 -
2、单例模式(双重锁和内部类)
单例模式 单例模式是在一个应用中,该类只有1个实例 1、需要将构造方法私有化。 2、获取实例的方法static 3、有饿汉和懒汉模式。饿汉模式是线程安全的。会影响启动速度 懒汉模式会在用的时候,再去创建。但是是线程不安全的,双重锁和内部类可以使懒加载是线程安全的 双重锁 /** 懒汉模式 细粒度(线程安全的) */ public class SingletonLazySafeSyn { ...原创 2020-04-05 13:03:21 · 97 阅读 · 0 评论 -
1、Java设计模式(开篇)
从面向对象编程(OOP)–>函数式编程 JDK1.8以后,Java出了 lambda表达式, Java从面向对象编程–>面向对象编程+函数式编程 面向对象基于4个基本原则: 1、封装:类中包含的各种属性和行为。是将属性和行为绑定到一起。以便维护和扩展 2、抽象:例如:接口。这种类可以公开它做的事情,但是隐藏它的实现 3、继承:将基类的能力赋予子类 4、多态:不同类型的实体使用相同接口的...原创 2020-04-01 23:56:49 · 87 阅读 · 0 评论