![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
buzzered
这个作者很懒,什么都没留下…
展开
-
单例模式
介绍饿汉式懒汉式注册式单例破坏反射破坏序列化破坏介绍* 定义: * 在任何情况下都有一个实例; * 提供全局访问点; * 是创建型设计模式;* 应用: * J2EE 标准中,ServletContext、ServletContextConfig 等 * spring 框架应用中 ApplicationContext, 数据库的连接池也都是单例形式。...原创 2019-03-13 23:01:55 · 217 阅读 · 0 评论 -
观察者模式
介绍代码(JDK提供的观察者模式)介绍代码 (基于Guava API 轻松落地观察者模式)介绍CODE介绍* 观察者模式定义了对象的一对多模式, 让多个观察者对象同时监听一个主体对象;* 当主体对象发送通知时, 所有观察者都收到推送;* 也叫发布订阅模式;* 属于行为型设计模式;* spring中应用: * ContextLoaderListener 实现了 ServletCon...原创 2019-03-21 23:38:14 · 271 阅读 · 0 评论 -
装饰者模式
简介代码介绍简介* 特点: * 在不改变原有对象的基础上, 将功能附加到对象上; * 通过将附加功能剥离成类的方式, 简化原有类逻辑, 提供了比继承更弹性的替代方案; * 属于结构型设计模式;* 应用场景: * 用于扩展一个类的功能, 或给一个类添加附加职责; * 动态给对象添加功能, 这些功能可以再动态撤离;* 比如: 装修时, 在不改变房子架构情况下, 为房子添加装饰;...原创 2019-03-21 21:56:37 · 206 阅读 · 0 评论 -
适配器模式
介绍介绍* 定义: * 将一个类的接口, 转换成客户希望的另一个类的接口, 使原本不兼容的接口可以一起工作; * 属于结构性设计模式;* 举例: * 电源适配器;* 适用场景: * 不同产品/不同厂家提供的接口不同, 功能类似; * 已经存在的类, 他的方法和需求不匹配, 但是功能类似 的情况; * 适配器模式一般和策略模式/委派模式/工厂模式结合使用;* 场景举例:...原创 2019-03-18 01:21:05 · 190 阅读 · 0 评论 -
策略模式
介绍源码及UML介绍* 策略模式概念: * 指定义了算法家族,分别封装起来,让他们之间可以互相替换; * 此模式让算法的替换 不影响使用算法的用户;* 应用场景: * 系统中有很多类,区别仅仅是他们 同一功能中的行为 不同; * 一个系统需要动态的在几种算法中选择一种;* 举例: 支付方式Alipay, WechatPay * 未使用策略模...原创 2019-03-17 19:58:45 · 187 阅读 · 0 评论 -
委派模式
介绍demo及UML介绍* 基本作用: * 负责任务的调度分配;* 与代理模式的区别: * 代理模式注重过程; * 委派模式注重结果;* 与工厂模式的区别: * 工厂模式注重对象的创建;* 举例1: boss下发工作任务; * 非委派模式: * boss直接分发工作任务给每个程序员; * 程序员完成后, 把结果直接返回给老板; * 所有工作都放在老板身上;...原创 2019-03-17 17:37:12 · 201 阅读 · 0 评论 -
代理模式
介绍静态代理类图:代码动态代理JDK动态代理介绍代码CGLIB动态代理介绍代码CGLIB Proxy和JDK Proxy对比代理模式在spring中的应用静态代理和动态代理的本质区别代理模式优缺点介绍* 定义: * 是结构型设计模式; * 为目标对象提供代理: 1.控制目标对象的访问; 2.增强目标对象已有功能;* 举例: * spring AOPProxy采用代理...原创 2019-03-15 16:30:36 · 200 阅读 · 0 评论 -
工厂模式
简单工厂模式* 定义: * 由一个工厂对象决定创建出哪一产品的实例;* 举例: * 简单汽车工厂产品: * Audi家用车, Audi商务车, Benz家用车, Benz民用车;* 缺点: * 工厂职责过重, 不利于扩展复杂的产品结构; * 添加产品时, 修改工厂类, 不符合开闭原则;* 使用场景: * 创建对象较少时;* 注: * 工厂可以是接...原创 2019-03-09 11:13:46 · 286 阅读 · 0 评论 -
设计模式简介
为什么使用设计模式?spring中的设计模式设计模式分类为什么使用设计模式?* 设计模式可以帮助我们更加优雅代码;* 合理的使用设计模式,更利于项目后期的维护;* 设计模式一般是组合使用的;spring中的设计模式* spring四大模块: * IOC , AOP , MVC , JDBC设计模式名称 举例工厂模式 BeanFactory装饰器模式 BeanWra...原创 2019-03-09 10:41:58 · 302 阅读 · 0 评论 -
软件设计原则及类之间的关系
七大设计原则开闭原则单一原则代替原则依赖倒转原则接口隔离原则最少原则合成复用原则类之间的关系依赖关联聚合组合继承,实现七大设计原则开闭原则* 对扩展开放,对修改关闭。单一原则* 类,接口,方法的职责单一;代替原则* 子类可以扩展父类的功能但不能改变父类原有的功能。依赖倒转原则* 通过抽象使各个类或者模块不相互影响,实现松耦合。接口隔离原则* 尽量保证接口的纯洁性,客...原创 2019-03-09 10:39:22 · 742 阅读 · 0 评论 -
原型模式
介绍代码介绍* 原型模式: 在运行期间, 根据原型实例动态创建出一个新实例;* 应用场景: * 克隆一个完全独立对象; (深克隆) * 创建一个对象需要高代价时; * 比如需要大量查询数据库, 可缓存该对象二进制数据, 使用时读取对象; * 多次使用同一个对象: * spring scope=“prototype” : bean非...原创 2019-03-13 23:04:49 · 180 阅读 · 0 评论 -
各设计模式之间的总结和对比
分类模式之间关系图分类模式之间关系图模式之间关联关系和对比模式之间关联关系和对比分类创建型: * 工厂方法模式(Factory Method)、抽象工厂模式(Abstract Factory)、建造者模式(Builder)、原型模式(Prototype)、单例模式(Singleton)结构型: * 适配器模式(Adapter)、桥接模式(Bridge)、组合模式(Comp...原创 2019-03-23 14:35:42 · 575 阅读 · 0 评论