随笔分类 - 设计模式
发表于 2021-09-27 20:43阅读:56评论:0推荐:0
摘要:观察者模式(Observer Pattern)定义了对象之间的一对多依赖,让多个观察者对象同 时监听一个主体对象,当主体对象发生变化时,它的所有依赖者(观察者)都会收到通 知并更新,属于行为型模式。观察者模式有时也叫做发布订阅模式。观察者模式主要用 于在关联行为之间建立一套触发机制的场景 应用场景
阅读全文 »
发表于 2021-09-27 20:42阅读:59评论:0推荐:0
摘要:装饰者模式(Decorator Pattern)是指在不改变原有对象的基础之上,将功能附加到对 象上,提供了比继承更有弹性的替代方案(扩展原有对象的功能),属于结构型模式 应用场景 用于扩展一个类的功能或给一个类添加附加职责。 动态的给一个对象添加功能,这些功能可以再动态的撤销。 案例 煎饼果子可以
阅读全文 »
发表于 2021-09-27 20:07阅读:91评论:0推荐:0
摘要:适配器模式(Adapter Pattern)是指将一个类的接口转换成客户期望的另一个接口,使 原本的接口不兼容的类可以一起工作,属于结构型设计模式 应用场景 已经存在的类,它的方法和需求不匹配(方法结果相同或相似)的情况。 适配器模式不是软件设计阶段考虑的设计模式,是随着软件维护,由于不同产品、不同
阅读全文 »
发表于 2021-09-27 19:54阅读:44评论:0推荐:0
摘要:定义 模板模式通常又叫模板方法模式(Template Method Pattern)是指定义一个算法的骨 架,并允许子类为一个或者多个步骤提供实现。模板方法使得子类可以在不改变算法结 构的情况下,重新定义算法的某些步骤,属于行为性设计模式 应用场景 一次性实现一个算法的不变的部分,并将可变的行为留给
阅读全文 »
发表于 2021-09-24 22:40阅读:38评论:0推荐:0
摘要:策略模式(Strategy Pattern)是指定义了算法家族、分别封装起来,让它们之间可以互 相替换,此模式让算法的变化不会影响到使用算法的用户。 应用场景 假如系统中有很多类,而他们的区别仅仅在于他们的行为不同。 一个系统需要动态地在几种算法中选择一种 支付案例 支付抽象类Payment pub
阅读全文 »
发表于 2021-09-24 21:39阅读:61评论:0推荐:0
摘要:委派模式(Delegate Pattern)的基本作用就是 负责任务的调用和分配任务,跟代理模式很像,可以看做是一种特殊情况下的静态代理 的全权代理,但是代理模式注重过程,而委派模式注重结果。委派模式在 Spring 中应用 非常多,大家常用的 DispatcherServlet 其实就是用到了委派
阅读全文 »
发表于 2021-09-24 18:20阅读:61评论:0推荐:0
摘要:代理模式(Proxy Pattern),是指为其他对象提供一种代理,以控制对这个对象的访问。 代理对象在客服端和目标对象之间起到中介作用,代理模式属于结构型设计模式。使用 代理模式主要有两个目的: 保护目标对象 增强目标对象 静态代理 静态代理只能通过手动完成代理操作,如果被代理类增加新的方法,代理
阅读全文 »
发表于 2021-09-23 20:57阅读:40评论:0推荐:0
摘要:原型模式(Prototype Pattern)是指原型实例指定创建对象的种类,并且通过拷贝这些 原型创建新的对象。 使用场景: 类初始化消耗资源较多 new 产生的一个对象需要非常繁琐的过程(数据准备、访问权限等) 构造函数比较复杂 循环体中生产大量对象时 在 Spring 中,原型模式应用得非常广
阅读全文 »
发表于 2021-09-23 20:56阅读:44评论:0推荐:0
摘要:单例模式(Singleton Pattern)是指确保一个类在任何情况下都绝对只有一个实例,并 提供一个全局访问点。 应用场景 在 Spring 框架应用中 ApplicationContext 数据库的连接池 分类 饿汉式单例 懒汉式单例 注册式单例 ThreadLocal线程单例 饿汉式单例 饿
阅读全文 »
发表于 2021-09-23 16:13阅读:36评论:0推荐:0
摘要:软件设计原则 设计原则 解释 使用频率 开闭原则 对扩展开放,对修改关闭。 ★★★★★ 依赖倒置原则 通过抽象使各个类或者模块不相互影响,实现松耦合。 ★★★★★ 单一职责原则 一个类、接口、方法只做一件事。 ★★★★☆ 接口隔离原则 尽量保证接口的纯洁性,客户端不应该依赖不需要的接口。 ★★☆☆☆
阅读全文 »