设计模式
JeremyJiaming
知其然,知其所以然。
展开
-
原型模式
原型模式应用场景: 原型模式就是从一个对象再创建另外一个可定制的对象, 而且不需要知道任何创建的细节。 所谓原型模式, 就是 Java 中的克隆技术, 以某个对象为原型。 复制出新的对象。 显然新的对象具备原型对象的特点, 效率高(避免了重新执行构造过程步骤) 。 在MVC架构中的DTO、VO、POJO、Entity之间的相互赋值,就是用到了原型模式;Spring中BeanDefin...原创 2019-02-14 18:30:48 · 216 阅读 · 0 评论 -
深入分析代理模式
代理模式(Proxy)特点对于被代理人来说, 这件事情是一定要做的, 但是我自己又不想做或者没有时间做。对于代理人而言, 需要获取到被代理的人个人资料,只是参与整个过程的某个或几个环节。应用场景为其他对象提供一种代理以控制对这个对象的访问。从结构上来看和 Decorator 模式类似,但 Proxy 是控制,更像是一种对功能的限制,而 Decorator 是增加职责。Spring 的 P...原创 2019-02-15 10:18:45 · 266 阅读 · 0 评论 -
策略模式
策略模式(Strategy)概述 定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。应用场景 根据用户的需求处理数据时,需要对算法做出选择。这里的算法是指固定的算法(不再发生变化)。采用策略模式的好处是相比传统的switch或者if else更方便扩展,而且算法与用户端代码解耦。 之前研究设计模式的时候举的都是生活中的例子,后来...原创 2019-02-18 09:36:01 · 210 阅读 · 0 评论 -
简单工厂、工厂方法与抽象工厂的区别
简单工厂、工厂方法与抽象工厂简单工厂简单工厂类似于小作坊,目的是提升产品的质量,提高生产效率。public class SimpleFactory { public Milk getMilk(String name){ if("特仑苏".equals(name)){原创 2019-02-13 19:03:18 · 414 阅读 · 0 评论 -
单例模式的多种实现
单例模式应用场景: 保证一个类仅有一个实例, 并提供一个访问它的全局访问点。 Spring 中的单例模式完成了后半句话, 即提供了全局的访问点 BeanFactory。 但没有从构造器级别去控制单例, 这是因为 Spring 管理的是任意的 Java 对象。 Spring 下默认的 Bean 均为单例。实现:饿汉式单例 它是在类加载的时候就立即初始化,并且创建单例对象。优点:...原创 2019-02-14 10:14:10 · 278 阅读 · 0 评论 -
模板方法模式(Template Method)
模板方法模式(Template Method)概述: 定义一个操作中的算法的骨架, 而将一些步骤延迟到子类中。 Template Method 使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 例如生产饮料的流程:加原料、加水、烧水、加工、混合。现在我们向针对加原料来写一些算法,但是不能影响整个流程结构,就可以用到模板方法模式。使用场景分析: Template Me...原创 2019-03-11 09:58:39 · 409 阅读 · 0 评论 -
委派模式(Delegate)
委派模式(Delegate)概述: 委派模式不属于 23 种设计模式之一, 是面向对象设计模式中常用的一种模式。 这种模式的原理为类 B和类 A 是两个互相没有任何关系的类, B 具有和 A 一模一样的方法和属性; 并且调用 B 中的方法,就是调用 A 中同名的方法和属性。 B 好像就是一个受 A 授权委托的中介。 第三方的代码不需要知道 A 的存在, 也不需要和 A 发生直接的联系, ...原创 2019-03-12 09:33:35 · 770 阅读 · 0 评论 -
适配器模式(Adapter)
适配器模式(Adapter)概述 适配器模式是为了兼容。开发中我们常会遇到这样的场景:老系统运行了很久,为了保持其稳定性,不便再去修改原来的代码,但是又为了兼容新的需求或者标准,我们不得不在系统再去做一些文章(向下兼容)。穷举法 编码解码、 一拖三充电头、HDMI 转 VGA、 Type-C 转 USB应用场景登陆功能的升级 说一个项目开发都会遇到的场景:登陆功能的开发。直接上...原创 2019-03-12 15:00:55 · 218 阅读 · 0 评论 -
装饰器模式(Decorator)
装饰器模式(Decorator)概述 为了某个实现类在不修改原始类的基础上进行动态地覆盖或者增加方法,该实现保持跟原有类的层级关系。装饰器模式实际上是一种非常特殊的适配器模式,必须同宗同源(通过继承来实现)。 装饰器和被装饰器都实现同一个接口,主要目的是为了扩展之后依旧保留OOP关系(同宗同源)。穷举法 IO流包装、数据源包装、简历包装应用场景登陆方式扩展 还是上一章适配器...原创 2019-03-13 09:53:55 · 354 阅读 · 0 评论