![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 58
敏捷的独角鲸
这个作者很懒,什么都没留下…
展开
-
设计模式(行为型)---观察者模式
概念 观察者模式的定义:多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 简单来说就是被观察对象持有观察者,当被观察对象发生变化时调用观察者方法通知观察者 观察者模式中的四种角色: 1.抽象主题,即被观察者,实现观察者的添加,删除,与通知观察者的方法 2.具体主题,继承抽象主题 3.抽象观察者,一般是一个接口,定义update方法,具体主题发生改变时调用该方法通知观察者 4.具体观察者,实现抽象观察者接口 举例说明 JDK对于观察者模式已经有相应的类支持原创 2021-01-27 11:08:53 · 258 阅读 · 0 评论 -
设计模式(结构型)---桥接模式
概述 桥接模式的定义:将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。 举例说明 假设有两种包,品牌分别是Coach与Prada,种类有钱包,单肩包,双肩包,颜色有红色,黄色,蓝色,那么一共有233=18种,需要新建18个类来买描述这些产品吗,如果颜色又增加了1个黑色,一共有234=24种,描述产品的类的数量会迅速膨胀,为避免类的数量激增,需要使用组合关系代替继承关系 关系图如下 定义Color接口 /** * 颜色 */ publi原创 2021-01-15 14:04:50 · 233 阅读 · 0 评论 -
设计模式(结构型)---适配器模式
概述 适配器模式将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。 适配器模式分为三种:接口适配器,类适配器,对象适配器 举例说明 接口适配器 有一个票务接口 /** * 票务接口 */ public interface Ticketing { //查询 void queryTicket(); //支付 void payment(); //退票 void refundTicket(); //原创 2021-01-14 14:37:50 · 111 阅读 · 0 评论 -
设计模式(创建型)---建造者模式
概述 建造者模式将一个对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。 核心构成 1.Builder:抽象建造者,定义多个通用方法和构建方法 2.ConcreteBuilder:具体建造者,实现Builder接口,可以有多个 3.Director:指挥者,控制建造流程,并交给具体建造者,由具体建造者去创建对象 4.Product:产品,需要被建造的类 举例说明 以手机为例 /** * 产品 */ public class Phone { //cpu private Stri原创 2021-01-12 17:39:03 · 78 阅读 · 0 评论 -
设计模式(创建型)---原型模式
概述 原型模式的定义:以一个已经创建的实例作为原型,通过复制该对象来创建一个和原型相同或相似的新对象。 优点 1.复制在性能上比直接 new 一个对象更加优良。 2.可以使用深拷贝方式保存对象的状态,使用原型模式将对象复制一份,并将其状态保存起来,可辅助实现撤销操作。 缺点 1.需要为每一个类配备一个克隆方法,对已有的类进行改造时,需要修改源代码,违背了“开闭原则” 2.在实现深克隆时需要编写较为复杂的代码,且当对象之间存在多重的嵌套引用时,需要对每一层对象对应的类都必须支持深克隆 应用场景 当创建新对象成原创 2021-01-11 18:07:21 · 69 阅读 · 0 评论 -
设计模式(创建型)---抽象工厂模式
抽象工厂模式是基于简单工厂模式与工厂方法模式的拓展。 举例说明 键盘与鼠标都属于设备,ThinkPad生产键盘和鼠标,Mac也生产键盘和鼠标,那么产品关系如下 代码如下: 键盘 /** * 键盘 */ public interface Keyboard { /** * 键盘可以输入文字 */ void type(); } 鼠标 /** * 鼠标 */ public interface Mouse { /** * 鼠标可以点击原创 2021-01-09 21:45:23 · 83 阅读 · 2 评论 -
设计模式(创建型)---工厂模式
工厂模式提供了一种创建对象的最佳方式,创建对象时不会对客户端暴露创建逻辑。 分类 工厂模式有 3 种不同的实现方式 1.简单工厂模式:传入相关的类型来返回相应的类,这种方式比较单 一,可扩展性相对较差; 2.工厂方法模式:通过实现类实现相应的方法来决定相应的返回结果,这种方式的可扩展性比较强; 3.抽象工厂模式:基于上述两种模式的拓展,且支持细化产品 简单工厂模式 核心组成 1.抽象类:简单工厂模式所创建对象的父类 2.若干个抽象类的子类:简单工厂模式创建的就是这些类的对象 3.工厂类:简单工厂模式的核心,原创 2021-01-08 16:49:41 · 87 阅读 · 0 评论 -
设计模式(创建型)---单例模式
分类 单例模式分为懒汉与饿汉 懒汉:懒加载,延迟创建对象 饿汉:提前创建对象 实现步骤 1.私有化构造方法 2.对外提供一个获取单例的方法 单例模式(懒汉) 第一种方式 /** * 单例模式-懒汉 * 实现步骤1.私有化构造函数 2.对外提供一个获取实例的方法 */ public class SingletonLazy { private static SingletonLazy instance; /** * 私有化构造方法 */ private S原创 2021-01-07 17:14:04 · 66 阅读 · 0 评论