![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
程序猿渣渣帅
技术、生活、观点、个人成长。 主要关注互联网电商广告业务、数据分析方法论、大数据分析平台建设;java web、分布式、大数据处理以及可视化等相关技术。
展开
-
设计模式---单例模式
一、定义:单例对象的类必须保证只有一个实例存在二、单例模式特点:1、一个私有构造器、一个静态变量、一个静态方法获得实例;2、当有多个类加载器加载的时候还是会出现多个对象,可以指定加载器来解决;3、不可继承单件类(因为构造器私有)单件的应用:线程池,注册表,数据库连接池三、分类对单例的实现可以分为两大类——懒汉式和饿汉式,他们的区别在于:懒汉式:指全局的单例实例在第一次被使用时...原创 2018-07-29 00:18:48 · 144 阅读 · 0 评论 -
设计模式---代理模式与装饰者模式
目录 一、代理模式与装饰者模式对比二、代理模式三、装饰器模式一、代理模式与装饰者模式对比这两个设计模式看起来很像。对装饰器模式来说,装饰者(decorator)和被装饰者(decoratee)都实现同一个接口。对代理模式来说,代理类(proxy class)和真实处理的类(real class)都实现同一个接口。此外,不论我们使用哪一个模式,都可以很容易地在真实对象的方法前...原创 2018-08-12 20:58:54 · 230 阅读 · 0 评论 -
设计模式---策略模式(组合)
策略模式(通过组合封装算法,把一些特性委托给别人处理)一、定义:定义算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。(算法也可以理解为某一行为特性)继承的好处:让共同部分,可以复用.避免重复编程. 继承的不好:耦合性高.一旦超类添加一个新方法,子类都继承,拥有此方法,若子类相当部分不实现此方法,则要进行大批量修改.此外,采用继承时,子类就不可继承其它...原创 2018-08-12 20:48:23 · 1566 阅读 · 0 评论 -
设计模式---观察者模式
目录 一、基本概念二、适用场景三、用到的设计原则四、demo实例1、demo1观察者自己在主动把自己注册到被观察者中2、demo2被观察者主动添加观察者一、基本概念观察者模式属于行为型模式,其意图是定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。这一个模式的关键对象是目标(Subject)被观察者和观察者(...原创 2018-08-12 12:40:45 · 115 阅读 · 0 评论 -
设计模式---模板方法
目录 一、模板方法(通过继承封装算法)定义二、特点1、设计原则2、应用实例(AQS)三、模板方法的格式一、模板方法(通过继承封装算法)定义在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类在不改变算法结构的情况下,从新定义算法中的某些步骤。1、“模板方法”定义了算法的步骤,把这些步骤的实现延迟到子类;2、模板方法的抽象类可以定义具体的方...原创 2018-08-12 13:23:30 · 120 阅读 · 0 评论 -
设计模式总览
一、总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。7种结构型模式:适配器模式、装饰模...原创 2018-08-11 23:34:55 · 130 阅读 · 0 评论 -
设计模式---工厂方法
工厂方式是模板方法的一个特例工厂方法使用继承:把对象的创建委托给子类,子类实现工厂方法来创建对象。工厂方法让类的实例化推迟到子类// Creator是一个类,它实现了所有操纵产品的方法,但不实现工厂方法public abstract class Creator{ void anOperation(){ // ... } // Creato...原创 2018-08-12 18:11:23 · 128 阅读 · 0 评论 -
设计模式---抽象工厂
目录前言1、简单工厂2、静态工厂3、工厂方法模式(使用继承)4、抽象工厂(使用组合)前言为什么需要工厂模式?当使用new实例化一个类时,使用的是实现,而不是接口,代码捆绑着具体类会导致代码更脆弱缺乏弹性,使用松耦合的OO模式可以得到解脱。1、简单工厂简单工厂并不是一种设计模式,因为只是简单的把创建对象的代码封装起来,封装对象的创建,处理创建对象的细节p...原创 2018-08-12 20:17:30 · 118 阅读 · 0 评论 -
设计模式--原型模式(用于对象的复制)
目录一、new一个对象的步骤二、new一个对象和复制一个对象(clone)对比三、应用:原型模式主要用于对象的复制(clone)1、对象复制分类1)、浅复制2)、深复制2、原型模式的优点3、原型模式的注意事项1)、使用原型模式复制对象不会调用类的构造方法。2)深拷贝与浅拷贝四、测试浅拷贝和深度拷贝1、浅拷贝2、深度拷贝一、new一个对象的步骤...原创 2018-08-12 13:08:17 · 664 阅读 · 0 评论 -
设计模式---适配器模式和外观模式
目录1、适配器模式2、外观模式两种模式的比较:二者都会改变接口,适配器的意图是要转换接口,而外观的意图是要统一和简化接口。1、当需要使用一个现有的类而其接口并不符合你的需求时,就使用适配器;2、当需要简化并统一一个很大的接口或者一群复杂的接口时,使用外观;3、适配器模式有两种形式:对象适配器(使用组合)和类适配器。类适配器需要用到多重继承(Java中不能实现);适配器模式和...原创 2018-08-13 19:50:05 · 573 阅读 · 0 评论