我是靠谱客的博主 正直水杯,最近开发中收集的这篇文章主要介绍创建型模式、结构型模式和行为型模式_开发面试题之设计模式-分为创建型、结构型和行为型三种类型...设计模式依据不同的应用划分为创建型、结构型和行为型三种类型。装饰器模式应用案例单例设计模式,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

设计模式依据不同的应用划分为创建型、结构型和行为型三种类型。

  • 创建型模式,是对对象创建过程的各种问题和解决方案的总结。
  • 包括工厂模式(Factory、Abstract Factory)、单例模式(Singleton)、构建器模式(Builder)、原型模式(ProtoType)。
  • 结构性模式,是针对软件设计结构的总结,关注于类、对象继承、组合方式的实践经验。
  • 常见的结构性模式,包括桥接模式(Bridge)、适配器模式(Adapter)、装饰器模式(Decorator)、代理模式(Proxy)、组合模式(Composite)、外观模式(Facade)、享元模式(Flyweight)等。
  • 行为模式,是从类或对象之间交互、职责划分等角度总结的模式。
  • 比较常见的行为模式有策略模式(Strategy)、解释器模式(Interpreter)、命令模式(Command)、观察者模式(Observer)、迭代器模式(Iterator)、模板方法模式(Template Method)、访问者模式(Visitor)。
a6200807a0a0e115fb158b1892f4fcd7.png

下面看看Java开发中,2个常用的设计模式。

装饰器模式应用案例

我们知道 InputStream 是一个抽象类,标准类库中提供了FileInputStream、ByteArrayInputStream 等各种不同的子类,分别从不同角度对InputStream 进行了功能扩展,这是典型的装饰器模式应用案例。

识别装饰器模式,其类构造函数以相同的抽象类或者接口为输入参数。

因为装饰器模式本质上是包装同类型实例,我们对目标对象的调用,往往会通过包装类覆盖过的方法,迂回调用被包装的实例。

024f99261d1eb02faed324e0262371d5.png

单例设计模式

  • 这里的volatile 能够提供可见性,以及保证 getInstance 返回的是初始化完全的对象。
  • 在同步之前,进行null 检查,以尽量避免进入相对昂贵的同步块。
  • 直接在class级别进行同步,保证线程安全的类方法调用。

package com.demo.pattern;

/**

* Created by rickie on 2019/1/5.

*/

public class Singleton {

private static volatile Singleton singleton = null;

private Singleton(){

}

public static Singleton getSingleton(){

if(singleton == null) { // 尽量避免重复进入同步块

synchronized (Singleton.class) { // 同步class,意味着对同步类方法调用

if (singleton == null) {

singleton = new Singleton();

}

}

}

return singleton;

}

}

最后

以上就是正直水杯为你收集整理的创建型模式、结构型模式和行为型模式_开发面试题之设计模式-分为创建型、结构型和行为型三种类型...设计模式依据不同的应用划分为创建型、结构型和行为型三种类型。装饰器模式应用案例单例设计模式的全部内容,希望文章能够帮你解决创建型模式、结构型模式和行为型模式_开发面试题之设计模式-分为创建型、结构型和行为型三种类型...设计模式依据不同的应用划分为创建型、结构型和行为型三种类型。装饰器模式应用案例单例设计模式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部