随笔分类 - 设计模式
设计模式
摘要:1、什么是命令模式 要将“处理行为”作为参数传入方法,实际是匿名实现类的实例。如Lambda表达式。
阅读全文
摘要:1、什么是代理模式 客户端代码不能或不想直接访问被调用对象,比如某个目标对象需要的功能还不足以被客户端使用,而是需要额外创建一个代理对象返回给客户端使用,这种设计方式就是代理模式。 2、典型的应用:延迟加载内嵌对象、AOP动态代理
阅读全文
摘要:1、什么是观察者模式 观察者模式定义了对象间的一对多依赖关系,让一个或多个观察者对象观察一个主题(Subject)对象。当主题对象的状态发生变化时,系统能通知所有的依赖于此对象的观察者对象,从而使得观察者对象能够自动更新。 观察者模式中,被观察的对象常常被称为目标(target)或主题(Subjec
阅读全文
摘要:1、什么是工厂方法?什么是抽象工厂? 工厂方法:为各个被依赖的对象提供一个工厂类,被依赖对象由各工厂类创建。 抽象工厂:在各被依赖对象的工厂类上再抽象一层工厂类 2、简单工厂模式与抽象工厂模式的区分 简单工厂模式:工厂直接生产被依赖对象,那就是简单工厂模式。 抽象工厂模式:工厂生产的是工厂对象,而不
阅读全文
摘要:1、什么是简单工厂模式 将多个类的对象交给工厂类来生成的设计方式被称为简单工厂模式。 2、简单工厂模式的优势 让对象的调用者和对象的创建过程分离,当对象调用者需要对象时,直接向工厂请求即可,从而避免了对象的调用者与对象的实现类以硬编码方式耦合,以提高系统的可维护性、可扩展性。 3、简单工厂模式的缺点
阅读全文
摘要:1、什么是单例模式 如果一个类始终只能创建一个实例,则这个类被称为单例类,这种模式就叫做单例模式。 2、单例模式的保障措施。 1》将类的构造器使用private修饰。 2》提供一个public修饰的static方法,供第一次产生该类的第一个对象使用。 3》该类必须缓存起已经创建的第一个对象实例,否则
阅读全文
摘要:package com.lfy.SingletonMode; /** * @author lfy * @since 2018/06/03 * @see 单例模式除了2-5种实现方式外,还可以通过:枚举类型 或静态内部类来实现单例模式,留到后续学习 * * */ public class TestWithMultiThreading extends Thread { @O...
阅读全文
摘要:package com.lfy.SingletonMode; /** * 3、单例模式之最终版 * @author lfy * @since 2018/06/03 * @see 我们知道编译就是将源代码翻译成机器码的过程,而Java虚拟机的目标代码不是本地机器码,而是虚拟机代码。 * 编译原理里面有个过程是编译优化,就是指在不改变原来语义的情况下,通过调整语句的顺序...
阅读全文
摘要:package com.lfy.SingletonMode; /** * 3、单例模式之懒汉模式(线程安全)--双重校验锁 * @author lfy * @since 2018/06/03 * @see 这方式是线程安全的,测试看TestWithMultiThreading.java。 * 引入情景:在SingletonMode3的例子我们可以看到,synchro...
阅读全文
摘要:package com.lfy.SingletonMode; /** * 3、单例模式之懒汉模式(线程安全) * @author lfy * @since 2018/06/03 * @see 这方式是线程安全的,测试看TestWithMultiThreading.java * */ public class SingletonMode3 { //构造器私有化 p...
阅读全文
摘要:package com.lfy.SingletonMode; /** * 2、单例模式之懒汉模式(线程不安全) * @author lfy * @since 2018/06/03 * @see 这方式是线程不安全的,测试看TestWithMultiThreading.java中的测试代码 * */ public class SingletonMode2 { //...
阅读全文
摘要:package com.lfy.SingletonMode; /** * 1、什么是单例模式 * 采取一定的办法保证在整个软件系统中,单例模式确保对于某个类只能存在一个实例。有如下三个特点: ①、单例类只能有一个实例 ②、单例类必须自己创建自己的实例 ③、单例类必须提供外界获取这个实例的方法 2、单例类的设计思想 ①、外界不能创建这个类的实例,那么必须将构造...
阅读全文

浙公网安备 33010602011771号