随笔分类 -  设计模式

摘要:代理模式:给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理类与目标类实现相同的接口,让代理类去持有目标类的引用,进而去代理目标对象的一些行为 用处:1安全考虑,这点很容易理解, 阅读全文
posted @ 2016-09-06 14:55 海的心 阅读(163) 评论(0) 推荐(0)
摘要:单例模式,获取单个实例的创建对象的模式。避免频繁创建对象,加大内存开销,减少GC次数。 1.懒汉式单例 优点:第一次调用才初始化,避免内存浪费。 缺点:必须加锁synchronized 才能保证单例,(如果两个线程同时调用getInstance方法,会出错)但加锁会影响效率。 2.饿汉式单例 优点: 阅读全文
posted @ 2016-09-06 14:18 海的心 阅读(134) 评论(0) 推荐(0)
摘要:适配器模式用于解决接口不兼容问题。软件设计中,常常会出现要将一些"现存的对象"放到新的环境中,而新环境要求的接口是现对象不能满足的。 场景:有接口一,以及接口一的实现类;接口二,以及接口二的实现类。要让接口一下的类能去做接口二下的方法。(让二口插座能为三口电源充电) 用法: 1.定义接口一 2.定义 阅读全文
posted @ 2016-08-10 13:58 海的心 阅读(131) 评论(0) 推荐(0)
摘要:享元模式(Flyweight Pattern):将很多相同或非常相似的对象封装成同一个对象(享元对象),将它们的相同之处作为享元对象的属性,不同之处作为参数传入。使用享元模式可以减少系统对象的个数,提高对象的复用率。例如在自动装箱时,一个字节大小以内的整数都被封装成同一个对象。例如在购买书时,可以将 阅读全文
posted @ 2016-08-10 12:39 海的心 阅读(134) 评论(0) 推荐(0)
摘要:什么是策略模式(Strategy Pattern):简单的说就是某个对象完成某个动作或得到某个结果的过程中有不同的实现细节(执行策略),将每种不同的实现细节封装在实现同一接口的具体实现类(即策略类)中,由执行者在程序中通过统一接口来动态的调用具体的策略。例如我们要得到一个结果,可以有很多种算法,我们 阅读全文
posted @ 2016-08-10 12:33 海的心 阅读(132) 评论(0) 推荐(0)
摘要:一、用处: 使用工厂模式,我们在创建对象时不会对客户端暴露具体的创建细节,使用一个共同的接口,让其子类自己决定实例化哪一个工厂类。 二、使用: 1.创建一个接口 2.创建接口的实现类 3.创建工厂类 4.测试 public class FactoryPatternDemo { 5.输出 我是狮子,我 阅读全文
posted @ 2016-08-10 09:58 海的心 阅读(149) 评论(0) 推荐(0)