![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 61
设计模式的使用场景和代码实现
陈如水
市场经济条件下,每个人都有一个价,你有哪些本事?你值不值这个价?
人生如茶,经历浮沉,经历苦难浸泡,方能长大.
展开
-
20191202 浅拷贝、深拷贝、原型模式
如图所示 浅拷贝、深拷贝原型模式 深拷贝和浅拷贝的区别(copy的是值还是引用) 1.浅拷贝: 将原对象或原数组的引用直接赋给新对象,新数组,新对象/数组只是原对象的一个引用 2.深拷贝: 创建一个新的对象和数组,将原对象的各项属性的“值”(数组的所有元素)拷贝过来,是“值”而不是“引用” java的传递类型:java传递的话只有值传递,不存在引用传递。 浅拷贝(Sha......原创 2019-12-02 17:25:52 · 171 阅读 · 0 评论 -
20190815 构建者模式
Builder模式核心思想 1、在静态内部类中,对外提供获取外部类对象的方法,如build(),create()等。 2、创建外部类的对象时,传入静态内部类对象,以便把参数传递到外部类中。 3、在外部类中,提供构造方法,传递静态内部类对象,通过静态内部类对象,给外部类的成员变量赋值。 4、内部类字段要与外部类的字段相同。 5、内部类中set方法,返回this对象,以便进行链式调用。......原创 2019-08-15 19:13:51 · 130 阅读 · 2 评论 -
java中的代理模式
代理模式 代理模式的关键点是:代理对象与目标对象.代理对象是对目标对象的扩展。 通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能. 代理类负责其他琐碎的事情(公共性内容)。 一、静态代理 核心:代理类和目标类实现共同的接口;代理类持有目标类的引用,通过构造函数进行传递。 作用:代码或者说功能增强。 通过spring改...原创 2017-10-27 13:47:23 · 507 阅读 · 2 评论 -
使用静态内部类实现单例模式
代码如下: /** * Created on 2017/5/5. * Author:crs * Description:使用静态内部类的方式实现单例模式 */ public class Singleton { private Singleton() { } public static final Singleton getInstance() {原创 2017-05-05 10:20:06 · 3049 阅读 · 0 评论 -
安卓中的两种设计模式:单例模式,观察者模式
单例模式 线程不安全的写法:两者的初始化时间不一样;在多线程中使用可能出现并发问题, package lanxin.lanxin.bean; /** * Created by crs on 2017/4/26. */ public class Student { private static Student mStudent=null; //构造函数私有 priv...原创 2017-04-26 19:41:15 · 1031 阅读 · 0 评论 -
20191219 门面设计模式
门面设计模式 外部与一个子系统的通信必须通过一个统一的门面(Facade)对象进行,这就是门面模式。 使用哪种设计模式属于详细设计。 门面模式就是动里不动外,让外层好调用。使用门面设计模式。 门面设计模式:网关聚合层;接口定义不动,只变化接口实现。 单例模式:线程池; 策略模式:支付接口; 外部系统------>门面对象------>子系统。通过门面对象才能访......原创 2019-12-19 11:53:07 · 168 阅读 · 0 评论 -
20191219 策略模式
策略模式:指的是对象具备某个行为,但是在不同的场景中,该行为有不同的实现算法。 策略模式使用的就是面向对象的继承和多态机制,从而实现同一行为在不同场景下具备不同实现。 策略模式本质:分离算法,选择实现。 主要解决 在有多种算法相似的情况下,使用 if...else 或 switch...case 所带来的复杂性和臃肿性。 优点 1)算法多样性,且具备自由切换功能; 2)有效避免......原创 2019-12-19 15:34:14 · 154 阅读 · 2 评论 -
20201029 责任链模式
对责任链的理解,关键在于对链的理解,即包含如下三点: 1,链是一系列节点的集合,在责任链中,节点实质上是指请求的处理者; 2,链的各节点可灵活拆分再重组,在责任链中,实质上就是请求发送者与请求处理者的解耦。 3,责任链模式并不创建职责链,职责链的创建工作必须由系统的其他部分来完成,一般由使用该责任链的客户端创建。职责链模式降低了请求的发送者和请求处理者之间的耦合,从而使得多个请求处理者都有机会处理这个请求。 两个主体:(请求的)抽象处理者 (请求的)具体处理者 使用场景: 如果if ....原创 2020-10-29 15:18:33 · 93 阅读 · 1 评论 -
20201102 门面设计模式
门面设计模式: response中getWriter方法就是封装了outputStream 三个角色:子系统角色,门面角色,客户端角色。持有对方的实例。 门面设计模式相当于聚合层,就像云鹊的api-ws微服务。 子系统中有些方法对外提供暴露,有些方法仅仅对其他子系统提供。 在哪些情况下使用门面设计模式? 医院的例子 现代的软件系统都是比较复杂的,设计师处理复杂系统的一个常见方法便是将其"分而治之",把一个系统划分为几个较小的子系统。如果把医院作为一个子系统,按照部门职能,这个系统可以划分为.原创 2020-11-02 11:45:59 · 209 阅读 · 2 评论