![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
JackRenEngineer
努力到竭尽全力,拼搏到感动自己
展开
-
设计模式之观察者模式
定义观察者模式(Observer Pattern)定义了对象之间的一对多依赖,让多个观察者对象同时监听一个主体对象,当主体对象发生变化时,它的所有依赖者(观察者)都会收到通知并更新,属于行为型模式。观察者模式有时也叫做发布订阅模式。观察者模式主要用于在关联行为之间建立一套触发机制的场景。适用场景我们经常看到微信朋友圈的动态通知、邮件通知等实例我们来实现下java.awt.Event,简单的模拟下创建Event类public class Event { ...原创 2020-10-16 10:39:50 · 265 阅读 · 0 评论 -
设计模式之装饰者模式
定义装饰者模式(Decorator Pattern)是指在不改变原有对象的基础之上,将功能附加到对象上,提供了比继承更有弹性的替代方案(扩展原有对象的功能),属于结构型模式。适用场景1、用于扩展一个类的功能或给一个类添加附加职责。2、动态的给一个对象添加功能,这些功能可以再动态的撤销。实例说太多的概念都太过于苍白,我喜欢直接上代码我们用装饰者模式写下买煎饼加鸡蛋加烤肠这个场景,可以根据客户要求任意加创建一个煎饼的抽象类public abstract...原创 2020-10-16 09:59:13 · 241 阅读 · 0 评论 -
设计模式之适配器模式
适配器模式定义适配器模式(Adapter Pattern)是指将一个类的接口转换成客户期望的另一个接口,使原本的接口不兼容的类可以一起工作,属于结构型设计模式。适用场景1、已经存在的类,它的方法和需求不匹配(方法结果相同或相似)的情况。2、适配器模式不是软件设计阶段考虑的设计模式,是随着软件维护,由于不同产品、不同厂家造成功能类似而接口不相同情况下的解决方案。有点亡羊补牢的感觉。实例我们现在的登录有很多种,QQ、微信等,我们利用适配模式来写下这个代码...原创 2020-10-14 15:59:55 · 236 阅读 · 0 评论 -
设计模式之模板模式
一、模板模式定义模板模式通常又叫模板方法模式(Template Method Pattern)是指定义一个算法的骨架,并允许子类为一个或者多个步骤提供实现。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法的某些步骤,属于行为性设计模式。适用场景1、一次性实现一个算法的不变的部分,并将可变的行为留给子类来实现。2、各子类中公共的行为被提取出来并集中到一个公共的父类中,从而避免代码重复。优点 利用模板方法将相同处理逻辑的代码放到抽象父类中,提高代码的...原创 2020-10-14 15:17:22 · 391 阅读 · 0 评论 -
五分钟理解设计模式之代理模式
定义代理模式(ProxyPattern)的定义也非常简单,是指为其他对象提供一种代理,以控制对这个对象的访问。代理对象在客服端和目标对象之间起到中介作用,代理模式属于结构型设计模式。代理其实就是在原本逻辑前后增加一些逻辑,而调用者无感知分类 静态代理 动态代理 jdk动态代理 cglib动态代理 目的 保护目标对象 增强目标对象 静态代理场景...原创 2020-10-13 16:01:11 · 190 阅读 · 0 评论 -
设计模式之委派模式和策略模式
一、委派模式委派模式(Delegate Pattern)的基本作用就是负责任务的调用和分配任务,跟代理模式很像,可以看做是一种特殊情况下的静态代理的全权代理,但是代理模式注重过程,而委派模式注重结果。举例:老板(Boss)给项目经理(Leader)下达任务,项目经理会根据 实际情况给每个员工派发工作任务,待员工把工作任务完成之后,再由项目经理汇报工作进度和结果给老板。创建员工IEmployee接口public interface IEmploye...原创 2020-10-13 15:02:51 · 431 阅读 · 0 评论 -
五分钟精通设计模式之原型模式
定义原型模式(Prototype Pattern)是指原型实例指定创建对象的 种类,并且通过拷贝这些原型创建新的对象。 调用者不需要知道任何创建细节,不调用构造函数。适用场景类初始化消耗资源较多。 new产生的一个对象需要非常繁琐的过程(数据准备、访问权限等) 构造函数比较复杂 循环体中生产大量对象时,可读性下降。 原型模式就是快速构建对象的方法总结, 简单工厂将getter、setter封装到某个方法中 JDK提供的实现Cloneable接口,实现快速复制 scope=“prototy原创 2020-10-11 16:39:37 · 139 阅读 · 0 评论 -
五分钟精通设计模式之单例模式
定义单例模式(Singleton Pattern)是指确保一个类在任何情况下都绝对只有一个实例,并提供一个全局访问点适用场景 确保任何情况下都绝对只有一个实例 常见写法 饿汉式单例 懒汉式单例 注册式单例 ThreadLocal单例 饿汉式单例 在单例类首次加载时就创建实例 绝对线程安全,在线程还没出现以前就实例化了,不可能出现访问安全问题 缺点:浪费内存空间 优点:没有加任何的锁...原创 2020-10-11 16:07:50 · 142 阅读 · 0 评论 -
五分钟读懂工厂模式之简单工厂模式
工厂顾名思义就是创建产品,根据产品是具体产品还是具体工厂可分为简单工厂模式和工厂方法模式,根据工厂的抽象程度可分为工厂方法模式和抽象工厂模式。该模式用于封装和管理对象的创建,是一种创建型模式。一、简单工厂模式 定义 简单工厂模式(Simple Factory Pattern)是指由一个工厂对象决定创建出哪一种产品类的实例。2.使用场景 厂类负责创建的对象较少 客户端只需要传入工厂类的参数,对于如何创建对象的逻辑不需要关心 3....原创 2020-10-11 13:22:55 · 172 阅读 · 0 评论 -
五分钟读懂设计模式之工厂方法模式、抽象工厂模式
一、工厂方法模式定义:工厂方法模式是指定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行适用场景: 创建对象需要大量重复的代码 客户端(应用层)不依赖于产品实例如何被创建、实现等细节 一个类通过子类来指定创建哪个对象 优点 用户只需关心所需产品对应的工行,无需关心创建细节 加入新产品符合开闭原则,提高系统的可扩展性 缺点 类的个数容易过多,增加了代码结构的复杂度...原创 2020-10-11 15:02:39 · 179 阅读 · 1 评论