精华内容
下载资源
问答
  • 创建型模式主要用于创建对象。 • 结构型模式主要用于处理类或对象的组合。 • 行为型模式主要用于描述对类或对象怎样交互和怎样分配职责。 根据范围,即模式主要是用于处理类之间关系还是处理对象之间的...

    复习设计模式有两周了,有必要重新把设计模式的整体结构梳理一下,在此摘录刘伟老师的教材中部分知识点,做个笔记。

    一、设计模式的分类

    根据其目的(模式是用来做什么的)可分为创建型 (Creational)结构型(Structural)行为型 (Behavioral)三种:
    创建型模式主要用于创建对象
    结构型模式主要用于处理类或对象的组合
    行为型模式主要用于描述对类或对象怎样交互和怎样分配职责
    根据范围,即模式主要是用于处理类之间关系还是处理对象之间的关系,可分为类模式对象模式两种:
    类模式处理类和子类之间的关系,这些关系通过继承建立,在编译时刻就被确定下来,是属于静态的。
    对象模式处理对象间的关系,这些关系在运行时刻变化,更具动态性。

    二、GoF设计模式

    创建型模式
    • 抽象工厂模式(Abstract Factory)
    • 建造者模式(Builder)
    • 工厂方法模式(Factory Method)
    • 原型模式(Prototype)
    • 单例模式(Singleton)
    结构型模式
    • 适配器模式(Adapter)
    • 桥接模式(Bridge)
    • 组合模式(Composite)
    • 装饰模式(Decorator)
    • 外观模式(Facade)
    • 享元模式(Flyweight)
    • 代理模式(Proxy)
    行为型模式
    • 职责链模式(Chain of Responsibility)
    • 命令模式(Command)
    • 解释器模式(Interpreter)
    • 迭代器模式(Iterator)
    • 中介者模式(Mediator)
    • 备忘录模式(Memento)
    • 观察者模式(Observer)
    • 状态模式(State)
    • 策略模式(Strategy)
    • 模板方法模式(Template Method)
    • 访问者模式(Visitor)

    三、创建型模式

    创建型模式(Creational Pattern)对类的实例化过程进行了抽象,能够将软件模块中对象的创建和对象的使用分离。为了使软件的结构更加清晰,外界对于这些对象只需要知道它们共同的接口,而不清楚其具体的实现细节,使整个系统的设计更加符合单一职责原则。
    创建型模式在创建什么(What)由谁创建(Who)时创建(When)等方面都为软件设计者提供了尽可能大的灵活性。创建型模式隐藏了类的实例的创建细节,通过隐藏对象如何被创建和组合在一起达到使整个系统独立的目的

    四、结构型模式

    描述如何将类或者对象结合在一起形成更大的结构,就像搭积木,可以通过简单积木的组合形成复杂的、功能更为强大的结构。
    结构型模式可以分为类结构型模式对象结构型模式
    类结构型模式关心类的组合,由多个类可以组合成一个更大的系统,在类结构型模式中一般只存在继承关系和实现关系。
    对象结构型模式关心类与对象的组合,通过关联关系使得在一个类中定义另一个类的实例对象,然后通过该对象调用其方法。根据“合成复用原则”,在系统中尽量使用关联关系来替代继承关系,因此大部分结构型模式都是对象结构型模式

    五、行为型模式

    行为型模式(Behavioral Pattern)是对在不同的对象之间划分责任和算法的抽象化
    行为型模式不仅仅关注类和对象的结构,而重点关注它们之间的相互作用通过行为型模式,可以更加清晰地划分类与
    对象的职责,并研究系统在运行时实例对象之间的交互。在系统运行时,对象并不是孤立的,它们可以通过相互通信与协作完成某些复杂功能,一个对象在运行时也将影响到其他对象的运行。
    行为型模式分为类行为型模式对象行为型模式两种:
    类行为型模式:类的行为型模式使用继承关系在几个类之间分配行为,类行为型模式主要通过多态等方式来分配父类与子类的职责。
    对象行为型模式:对象的行为型模式则使用对象的聚合关联关系来分配行为,对象行为型模式主要是通过对象关联等方式来分配两个或多个类的职责。根据“合成复用原则”,系统中要尽量使用关联关系来取代继承关系,因此大部分行为型设计模式都属于对象行为型设计模式
    展开全文
  • 创建型模式

    2019-08-12 17:42:25
    创建类模式主要关注对象的创建过程,将对象的创建过程进行封装,使客户端可以直接得到对象,而不用去关心如何创建对象。创建类模式有5种,分别是: 单例模式:用于得到内存中的唯一对象。 工厂方法模式:用于创建...

    1、创造型模式

    创建类模式主要关注对象的创建过程,将对象的创建过程进行封装,使客户端可以直接得到对象,而不用去关心如何创建对象。创建类模式有5种,分别是:

    单例模式:用于得到内存中的唯一对象。

    工厂方法模式:用于创建复杂对象。

    抽象工厂模式:用于创建一组相关或相互依赖的复杂对象。

    建造者模式:用于创建模块化的更加复杂的对象。

    原型模式:用于得到一个对象的拷贝。

    2、xmind
    创建型模式
    3、参考文章地址

    https://www.cnblogs.com/yuyu666/category/1312717.html

    4、总结

    所有的创建类模式本质上都是对对象的创建过程进行封装。

    展开全文
  • 设计模式之创建型模式

    热门讨论 2017-06-25 21:04:45
    创建型模式主要关注对象的创建过程,将对象的创建过程进行封装,使客户端可以直接得到对象,而不用去关心如何创建对象。 有五种创建型模式:  单例模式(Singleton): 用于得到某类型的唯一对象; 工厂方法...

        创建型模式主要关注对象的创建过程,将对象的创建过程进行封装,使客户端可以直接得到对象,而不用去关心如何创建对象。

    有五种创建型模式:

    •   单例模式(Singleton): 用于得到某类型的唯一对象;
    •   工厂方法模式(FactoryMethod) : 用于创建复杂对象;
    •   抽象工厂模式(AbstractFactory) : 用于创建一组相关或相互依赖的复杂对象;
    •   建造者模式(Builder): 用于创建模块化的更加复杂的对象;
    •   原型模式(ProtoType): 用于得到一个对象的拷贝;


    1. 单例模式(Singleton)


    意图

        保证一个类仅有一个实例,并提供一个访问它的全局访问点。

    优点

    •   由于实例是在Instance 属性方法内部创建的,因此类可以使用附加功能(例如,对子类进行实例化),即使它可能引入不想要的依赖性。
    •   直到对象要求产生一个实例才执行实例化;这种方法称为"惰性实例化"。惰性实例化避免了在应用程序启动时实例化不必要的 singleton。

     

    2. 工厂方法模式(FactoryMethod)


    意图

        1)定义一个用于创建对象的接口,让子类决定实例化哪一个类;

        2)使一个类的实例化延迟到其子类。 

    优点

        实现了开闭原则,可以在不改变工厂的前提下增加新产品。

     


    3. 抽象工厂模式(AbstractFactory)


    意图

        用于创建一组相关或相互依赖的复杂对象。

     

    附注:简单工厂、工厂方法、抽象工厂比较

        简单工厂,工厂方法,抽象工厂都属于设计模式中的创建型模式。其主要功能都是帮助我们把对象的实例化部分抽取了出来,优化了系统的架构,并且增强了系统的扩展性。

    •   简单工厂:简单工厂模式的工厂类一般是使用静态方法,通过接收的参数的不同来返回不同的对象实例。不修改代码的话,是无法扩展的。
    •   工厂方法:工厂方法是针对每一种产品提供一个工厂类。通过不同的工厂实例来创建不同的产品实例。在同一等级结构中,支持增加任意产品。
    •   抽象工厂:抽象工厂是应对产品族概念的。比如说,每个汽车公司可能要同时生产轿车,货车,客车,那么每一个工厂都要有创建轿车,货车和客车的方法。应对产品族概念而生,增加新的产品线很容易,但是无法增加新的产品。

    区别

    •   简单工厂 : 用来生产同一等级结构中的任意产品。(对于增加新的产品,无能为力)
    •   工厂模式 :用来生产同一等级结构中的固定产品。(支持增加任意产品)  
    •   抽象工厂:用来生产不同产品族的全部产品。(对于增加新的产品,无能为力;支持增加产品族)  

     

     

    4. 建造者模式(Builder)

    意图

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

    优点

        采用建造者模式可以轻松地改变产品的内部表示。建造者模式将构造代码和表示代码分开。构造过程可以更精细地控制,生成器模式强调的是产品的构造过程,产品各部分具有依赖关系非常重要。

    附注:与抽象工厂模式的比较

        生成器模式关注于将构造对象的过程和构造的各个部分分开,而抽象工厂关注于构建一个产品系列。实际上,最大的区别是生成器模式创建的产品不一定有共同的父类,只要有类似的构造过程即可。

     

    5. 原型模式(ProtoType)

    意图

        用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象,也即通过一个已存在对象来进行新对象的创建。

    优点

        引入Prototype模式后不再需要一个与具体产品等级结构平行的工厂方法类,减少了类的构造,同时客户程序可以在运行时刻建立和删除原型。

     

    展开全文
  • 设计模式-创建型

    2014-05-02 15:18:45
    1.创建型模式主要用于创建对象 根据根据范围,即模式主要是用于处理类之间关系还是处理对象之间的关系,可分为类模式和对象模式两种 a.类模式处理类和子类之间的关系,这些关系通过继承建立,在编译时刻就被确定...

    根据其目的(模式是用来做什么的)可分为创建型,结构型,和行为型三种

    1.创建型模式主要用于创建对象

    根据根据范围,即模式主要是用于处理类之间关系还是处理对象之间的关系,可分为类模式和对象模式两种

    a.类模式处理类和子类之间的关系,这些关系通过继承建立,在编译时刻就被确定下来,是属于静态的。

    类:简单工厂和工厂方法

    类的创建模式使用继承关系,把类的创建延迟到子类,从而封装了客户端将得到哪些具体类的信息,并且隐藏了这些类的实例是如何被创建和放在一起的。


     b.对象模式处理对象间的关系,这些关系在运行时刻变化,更具动态性。

    对象:抽象工厂   建造者  原型  单例

    把对象的创建过程动态地委派给另一个对象,从而动态地决定客户端将得到哪些具体类的实例,以及这些类的实例是如何被创建和组合在
    一起的。


    2.创建型模式的目的就是封装对象创建的变化。

    a.创建型模式(Creational Pattern)对类的实例化过程进行了抽象,能够将软件模块中对象的创建和对象的使用分离。为了使软件的结构更加清晰,外界对于这些对象只需要知道它
    们共同的接口,而不清楚其具体的实现细节,使整个系统的设计更加符合单一职责原则。

    b.创建型模式在创建什么(What),由谁创建(Who),何时创建(When)等方面都为软件设计者提供了尽可能大的灵活性。

    c.创建型模式隐藏了类的实例的创建细节,通过隐藏对象如何被创建和组合在一起达到使整个系统独立的目的。

    --------------------------------------------------------------------------------------------------------------------------------------------------------------------

    创建型模式:

    1.简单工厂

    2.工厂方法

    3.抽象工厂

    4.单例模式

    5.建造者模式

    6.原型模式

    展开全文
  • 创建型模式总结

    2018-10-04 23:02:00
    创建类模式主要关注对象的创建过程,将对象的创建过程进行封装,使客户端可以直接得到对象,而不用去关心如何创建对象。创建类模式有5种,分别是: 单例模式:用于得到内存中的唯一对象。 工厂方法模式:用于创建...
  • 创建型模式学习总结

    2018-08-17 22:45:27
    最近我正在自己学习设计模式,刚学完创建型模式,现在对我的学习到的内容进行归纳总结。... 创建型模式主要用于对象的创建,结构型模式处理类和对象的组合,行为型模式描述类或对象的职责。  ...
  • 创建型模式回顾

    2014-01-14 15:53:55
    创建类模式主要关注对象的创建过程,将对象的创建过程进行封装,使客户端可以直接得到对象,而不用去关心如何创建对象。创建类模式有5种,分别是: 单例模式:用于得到内存中的唯一对象。工厂方法模式:用于创建...
  • 原型模式(Prototype Pattern)属于创建型设计模式之一,它主要用于当直接创建对象的代价较大时对已有对象进行克隆从而节约性能成本。例如一个对象需要高代价的IO或访问数据库之后才能被创建出来,像这情况类初始化...
  • 又有人称为创建模式、生成器模式、构造器模式等,它主要用于复杂对象创建。那什么是复杂对象呢?其实简单地说就是类中构造方法有多个重载的版本和最终构造方法参数特别多的类的对象或者构造方法少但是属性特别多...
  • 创建型模式主要关注对象的创建过程,将对象的创建过程进行封装,使客户端可以直接得到对象,而不用去关心如何创建对象。 这里共有5种创建型模式: 单例模式(Singleton) : 用于得到某类型的唯一对象; 工厂方法模式...
  • 创建类模式的特点是:主要关注对象的创建过程,将对象的创建过程进行封装,使客户端不用去关心如何创建对象。 创建类模式有以下5个:(简单工厂模式的思想引出了设计模式概念,但不属于23个设计模式) 1.抽象工厂...
  • 创建型模式——工厂方法模式

    千次阅读 2020-07-10 08:22:13
    创建型模式——工厂方法模式 (一)概述 工厂方法模式定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method是一个类的实例化延迟到其子类。 在工厂方法模式中,核心的工厂类不再负责所有的产品的...
  •  原型模式属于创建型设计模式主要用于快速的创建重复的对象。 实现方式  通过将一个已经存在的对象进行拷贝克隆出一个相同的对象。 UML    实现代码 import java.io.ByteArrayInputStream; import ...
  • 4 创建型模式之 - 原型模式 定义:用原型实例指定创建对象的种类,并通过拷贝这些原型...原型模式主要用于对象的复制,它的核心是就是类图中的原型类Prototype。Prototype类需要具备以下两个条件: 实...
  • 创建型模式是对类的实例化过程的抽象化,能够提供对象的创建和管理职责。创建型模式共有5中: 单例模式 工厂模式 抽象工厂模式 建造者模式 原型模式 单例模式定义: 确保一个类只有一个实例,而且自行实例化...
  • 定义一个用于创建对象的接口,让子类决定实例化哪个类。 2.介绍 工厂方法模式属于创建型模式。 工厂方法模式主要用来创建复杂的对象,简单对象能够使用new来创建就不用工厂方法模式来创建了。 3.UML类图 角色...
  • 创建类模式主要关注对象的创建过程,将对象的创建过程进行封装,使客户端可以直接获得对象,而不用关心如何创建对象。创建类模式主要有5中: 1.单例模式:用于得到内存中唯一的对象。 2.工厂方法模式:用于创建...
  •  定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类实例化延迟到其子类。  2.别名  虚拟构造器(Virtual Constructor)  3.动机  框架使用抽象类定义和维护对象之间的关系。...
  • 创建型设计模式:对象怎么来的,主要用于创建对象。 结构型设计模式:对象和谁有关系,主要用于描述对象之间的关系。 行为型设计模式:对象和对象在干嘛,主要用于描述对象的动作。 J2EE型设计模式:对象联合起来...
  • 工厂方法模式用于在不指定待创建对象的具体类的情况下创建对象。工厂方法模式主要意图是隐藏对象创建的复杂性。◊使用工厂方法在一个类的内部创建对象通常比直接创建对象更灵活 ◊工厂方法模式通过面向对象的手法...
  • 根据 设计模式 整理。 设计模式的一般定义如下: 设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结,使用设计模式是为了可重用...创建型模式主要用于描述如何创建对象
  • 创建型模式-单例模式

    2018-04-26 14:26:33
    1.什么是单例模式 单例模式主要用于对象只能被实例化一次的场景。 单例类有几点特征:单例类只能有一个实例单例类只能自己创建这个唯一的实例单例类必须给其他的类提供访问唯一实例的入口。 2.单例模式的几种实现...
  • 本文主要包括Java设计模式中的创建型模式分类下的部分设计模式: 一、单例模式(Singleton) 单例模式是指一个类只能有一个实例,且该类能自行创建这个实例的设计模式。 通常情况下,普通类的构造函数是公有的,...
  • 设计模式创建模式定义: ...类模式Factory Method 工厂模式意图定一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类动机:主要解决接口选择的问题。适用性
  • 创建型模式主要关注点在“怎样创建对象”,主要特点是“如何将对象的创建与使用分离”。这样可以降低系统的耦合度,使用者不需要关注对象的创建细节,对象的创建由相关的工厂来完成。 主要分为以下 5 种模式: 单例...
  • 学习:创建型模式

    2012-08-19 22:58:42
    创建型模式用于创建对象的模式。   用一个系统创建的那些对象的类对系统进行参数化有两种常用方法: 一、生成创建对象的类的子类;这对应于使用 Factory Method模式。这种方法的主要缺点是,仅为了改变...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 935
精华内容 374
关键字:

创建型模式主要用于创建对象