java 设计模式之(八):代理设计模式

代理模式章节简要

一.定义

为其他对象提供一种代理,以控制这个对象的访问

二.使用场景

  • 1.保护目标对象
  • 2.增强目标对象

三.优缺点

1.优点
  • 将代理对象与目与真实的被调用的目标对象分离
  • 一定程度上降低了系统的耦合度,扩展性好
  • 保护目标对象
    2.缺点
  • 造成系统设计中类的数目增加
  • 在客户端和目标对象增加一个代理对象,会造成请求处理速度变慢
  • 增加了系统的复杂度

四.角色

  • 代理对象:类似于中介
  • 目标对象:被代理的对象
  • 客户端:调用端

五.

java 设计模式之(七):外观设计模式

外观模式章节概要

一.定义

提供一个统一的接口,用来访问子系统的一群接口(也称门面模式)

简单来说:有一个统一的对外口径,它的实现可能调用了很多子系统的接口

二.适用场景

  • 子系统越来越复杂,增加外观模式提供简单调用接口
  • 构建多层系统结构,利用外观对象作为每层的入口,简化层间调用

三.优缺点

1.优点
  • 简化调用过程,无需了解、深入子系统,防止带来风险
  • 减少系统依赖、松散耦合
  • 更好的划分访问层次
2.缺点
  • 增加子系统、扩展子系

java 设计模式之(六):原型设计模式

原型模式对应的内容概要

一.定义

原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象

二.特点

不需要知道任何创建的细节,不调用构造函数

三.使用场景

  • 类初始化消耗较多资源
  • 类产生的一个对象需要非常繁琐的过程
  • 构造函数比较复杂(如属性比较多)
  • 循环体中生产大量相同类的对象时

四、优缺点

1.优点
  • 比直接new一个对象性能高
  • 简化创建过程
2.缺点
  • 必须配备clone方法
    • 实现Cloneable接口
    • 覆盖Object类的clo

java 设计模式之(五):建造者设计模式

建造者模式概要

一.定义

将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示

二.使用场景

  • 1.一个对象有非常复杂的内部结构(有很多属性)
  • 2.想把复杂对象的创建和使用分离

三.优缺点

1.优点
  • 1.封装性好,创建和使用分离
  • 2.扩展性好、建造类之间分离、一定程度上解耦
2.缺点
  • 1.产生多余的Builder对象
  • 2.产品结构发生变化,建造者都要修改,成本较大

四.角色

  • 产品 : 具体的产品类
  • 产品建造者

java 设计模式之(四):单例设计模式

一.什么是单例模式

1.什么是单例模式

单例模式就是一个类对外只有一个实例

2.场景
  • 实例化类需要消耗很多的资源
  • 该类只能实例化一次,对外是唯一的对象
3.表现形式:
  • 构造方法是私有的,即外部是无法实例化该类的
  • 有一个保存当前实例的私有静态变量
  • 有一个对外开放的访问该类对象的方法
4.单例的线程安全性检测

通过多线程调用单例的获取实例的方法,检查每次的实例是否相同

二.单例模式的实现方式

1.饿汉式(线程安全)

java 设计模式之(三):抽象工厂设计模式

抽象工厂内容概要

一.定义

提供一个创建一系列相关或相互依赖对象的接口

二.角色

  • 1.抽象工厂
  • 2.抽象产品(多个)
  • 3.具体产品(多个)
  • 4.具体工厂(多个)

    三.适用场景

  • 客户端不依赖于产品类实例如何被创建、实现等细节
  • 强调一系列相关的产品对象(属于同一产品族)一起使用创建对象需要大量重复的代码
  • 提供一个产品类的库,所有的产品以同样的接口出现,从而使用客户端不依赖于具体实现

四.优缺点

(1).优点
  • 具体产品在应用层代码隔离,

java 设计模式之(二):工厂方法设计模式

工厂方法模式内容概览

一.定义

定义一个创建对象的的接口,但让实现这个接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行

二.适用场景

  • 创建对象需要大量重复的代码
  • 客户端不依赖于产品类实例如何被创建、实现等细节
  • 一个类(接口)通过其子类来指定创建哪个对象

三.角色

  • 产品接口: 所有产品的父类,负责描述产品的公共接口
  • 产品实现类: 具体产品实体
  • 工厂接口: 所有工厂的父类,负责描述工厂的公共接口
  • 具体产品的工厂实现类

java 设计模式之(一):简单工厂设计模式

本章内容概要:

简单工厂内容概要

一.概念

根据不同的参数返回不同的类的实例

注:简单工厂模式不在GOF四人组所列的23种设计模式之中

二.角色

1.工厂 : 负责创建不同的类的实例
2.抽象产品(接口) : 所有产品类的父类,负责描述产品的公共接口
3.具体产品 : 具体的产品的目标

三.优缺点

1.优点
  • 客户端无须知道创建具体的产品类名,只需知道具体产品对象的参数即可
  • 通过引入配置文件,可以在不修改任何客户端代码的情况下更