精华内容
下载资源
问答
  • ③通过编程实践,理解每一种创建型设计模式的概念和内涵、结构、优缺点以及应用场景。 (2)实验内容与步骤 ①使用简单工厂模式设计一个可以创建不同几何形状( Shape)(例如圆形( Circle).、矩形 Rectangle)和三角形...

    实验项目二: 创建型设计模式实验

    (1)实验目的与原理
    ①结合实例,熟练绘制创建型设计模式结构图。
    ②结合实例,熟练使用Java面向对象编程语言实现创建型设计模式。
    ③通过编程实践,理解每一种创建型设计模式的概念和内涵、结构、优缺点以及应用场景。
    (2)实验内容与步骤
    ①使用简单工厂模式设计一个可以创建不同几何形状( Shape)(例如圆形( Circle).、矩形 Rectangle)和三角形( ( Triangle)等的绘图工具类,每个几何图形均具有绘制方法daw()和擦除方法 erase(),要求在绘制不支持的几何图形时,抛出一个 UnsupportedShapeException异常。绘制类图并编程模拟实现。

    ②在某网络管理软件中,需要为不同的网络协议提供不同的连接类,例如针对POP3协议的连接类POP3Connection、针对IMAP协议的连接类 IMAPConnection、针对HTTP协议的连接类 HTTPConnection等。由于网络连接对象的创建过程较为复杂,需要将其创建过程封装到专门的类中,该软件还将支持更多类型的网络协议。现采用工厂方法模式进行设计,绘制类图并编程模拟实现。

    ③某系统为了改进数据库操作的性能,用户可以自定义数据库连接对象 Connection和语句对象 Statement,针对不同类型的数据库提供不同的连接对象和语句对象,例如提供 Oracle或 MySQL专用连接类和语句类,而且用户可以通过配置文件等方式根据实际需要动态更换系统数据库。使用抽象工厂模式设计该系统,绘制对应的类图并编程模拟实现。

    ④在某赛车游戏中,赛车包括方程式赛车、场地野赛车、运动汽车、卡车等类型,不同类型的赛车的车身、发动机、轮胎、变速箱等部件有所区别。玩家可以自行选择赛车类型,系统将根据玩家的选择创建出一辆完整的赛车。现采用建造者模式实现赛车的构建,绘制对应的类图并编程模拟实现

    ⑤某在线招聘网站中,用户可以创建一个简历模板。针对不同的工作岗位,可以复制该简历模板并进行适当修改后,生成一份新的简历。在复制简历时,用户可以选择是否复制简历中的照片:如果选择“是”,则照片将一同被复制,用户对新简历中的照片进行修改不会影响到简历模板中的照片,对模板进行修改也不会影响到新简历;如果选择“否”,则直接引用简历模板中的照片,修改简历模板中的照片将导致新简历中的照片一同修改,反之亦然。现采用原型模式设计该简历复制功能并提供浅克隆和深克隆两套实现方案,绘制对应的类图并编程模拟实现。

    ⑥某Web性能测试软件中包含一个虚拟用户生成器( Virtual User Generator)。为了避免生成的虚拟用户数量不一致,该测试软件在工作时只允许启动唯一一个虚拟用户生成器。采用单例模式设计该虚拟用户生成器,绘制类图并分别使用饿汉式单例、双重检测锁等二种方式编程模拟实现。

    (3)实验过程
    第一题:简单工厂模式实现创建不同几何图形
    结构类图
    在这里插入图片描述
    实现代码:

    模拟测试截图
    在这里插入图片描述
    第二题:工厂方法模式实现不同网络协议的连接
    结构类图
    在这里插入图片描述

    实现代码:

    模拟测试截图
    在这里插入图片描述

    第三题:抽象工厂模式实现数据库的连接
    结构类图
    在这里插入图片描述

    实现代码:

    模拟测试截图
    在这里插入图片描述

    第四题:建造者模式实现赛车的构建
    结构类图
    在这里插入图片描述

    实现代码:

    模拟测试截图
    在这里插入图片描述

    第五题:原型模式通过浅克隆和深克隆方法实现该简历复制功能
    结构类图
    在这里插入图片描述

    实现代码:

    模拟测试截图
    在这里插入图片描述

    第六题:单例模式设计虚拟用户生成器,使用饿汉式和双重检测
    结构类图
    在这里插入图片描述

    实现代码:

    模拟测试截图
    在这里插入图片描述
    详细的代码及操作

    展开全文
  • 创建型模式应用实验

    创建型模式应用实例

    展开全文
  • 设计模式之美(6)-创建型-原型模式

    万次阅读 2021-08-23 21:37:02
    这种基于原型来创建的方式就叫作原型设计模式(Prototype Design Pattern),简称原型模式。 为何“对象的创建成本比较大” 实际上,创建对象包含申请内存、给成员变量赋值这一过程,本身并不会花费太多时间, 但是...

    原型模式的原理与应用

    如果对象的创建成本比较大,而同一个类的不同对象之间差别不大(大部分字段都相同),在这种情况下,我们可以利用对已有对象(原型)进行赋值(或者叫拷贝)的方式来创建新对象,达到节省创建时间的目的。这种基于原型来创建的方式就叫作原型设计模式(Prototype Design Pattern),简称原型模式。

    为何“对象的创建成本比较大”

    实际上,创建对象包含申请内存、给成员变量赋值这一过程,本身并不会花费太多时间,
    但是,如果对象中的数据需要经过复杂的计算才能得到(比如排序、计算哈希),或者从PRC、网络、数据库、文件系统等非常慢的IO中读取,这种情况下,我们就可以用原型模式,从其他已有对象中直接拷贝得到,而不用每次在创建新对象的时候,都重复执行这些耗时的操作。

    深拷贝和浅拷贝

    深拷贝和浅拷贝的区别在于,浅拷贝只会复制数据索引,不会复制数据本身。深拷贝不仅仅复制数据索引,还会复制数据本身。浅拷贝得到的对象跟原始对象共享数据,而深拷贝得到的是一份完完全全独立的对象。
    在Java语言中,Object类的clone()方法执行的就是浅拷贝。他会拷贝对象中的基本数据类型的数据,以及引用对象的内存地址(指针),不会递归的拷贝引用对象本身。
    不管采用哪种,深拷贝都要比浅拷贝耗时、耗内存空间。

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

    千次阅读 2013-02-25 09:59:49
    在软件工程中,创建型模式是处理对象创建的设计模式,试图根据实际情况使用合适的方式创建对象。 基本的对象创建方式可能会导致设计上的问题,或增加设计的复杂度。创建型模式通过以某种方式控制对象的创建来解决...

    一、创建型模式

     

    在软件工程中,创建型模式是处理对象创建的设计模式,试图根据实际情况使用合适的方式创建对象。

    基本的对象创建方式可能会导致设计上的问题,或增加设计的复杂度。创建型模式通过以某种方式控制对象的创建来解决问题。

     

    创建型模式由两个主导思想构成

    一是将系统使用的具体类封装起来二是隐藏这些具体类的实例创建和结合的方式。

     

    创建型模式又分为对象创建型模式和类创建型模式。

    对象创建型模式处理对象的创建,类创建型模式处理类的创建。详细地说,对象创建型模式把对象创建的一部分推迟到另一个对象中,而类创建型模式将它对象的创建推迟到子类中。

     

    创建型模式旨在将系统与它的对象创建、结合、表示的方式分离。这些设计模式在对象创建的类型、主体、方式、时间等方面提高了系统的灵活性。

     

    创建型模式增强了对象和类之间的独立性

     

    在以下情况中,可以考虑应用创建型模式:

    一个系统需要和它的对象和产品的创建相互独立。

    一组相关的对象被设计为一起使用。

    隐藏一个类库的具体实现,仅暴露它们的接口。

    创建独立复杂对象的不同表示。

    一个类希望它的子类实现它所创建的对象。

    类的实例化在运行时才指定。

    一个类只能有一个实例,而且这个实例能在任何时候访问到。

    实例应该能在不修改的情况下具有可扩展性。

     

    二、列举五大创建型设计模式

     

    工厂方法模式和抽象工厂模式具体见《比较工厂三姐妹》。

     

    1、工厂方法模式(Factory Method)(略)

    2、抽象工厂模式(Abstract Factory)(略)

     

    3、建造者模式(Builder)

     

    建造者模式:将一个产品的内部表象与产品的生成过程分割开了,可以使一个建造过程生成具有不同的内部表象的产品对象。简而言之,将一个复杂对象的创建与它的表示分离,使同样的创建过程可以创建不同的表示。

     

    结构图:

    举例:建造小人(《大话设计模式》中的例子)

     

    优缺点:采用建造者模式可以轻松地改变产品的内部表示。建造者模式将构造代码和表示代码分开。建造过程可以更精细地控制,生成器模式强调的是产品的构造过程,产品各部分具有依赖关系非常重要。需要注意的是,不同建造器产生的对象可能不属于同一类型,因此使用生成器的客户必须知道产品的具体类型。这意味着建造器经常不能互换,不同的建造器针对的客户程序也不相同。

    注:与抽象工厂模式的比较:建造者模式关注于将构造对象的过程和构造的各个部分分开,而抽象工厂关注于构建一个产品系列。实际上,最大的区别是生成器模式创建的产品不一定有共同的父类,只要有类似的构造过程即可。实际上我们常见到的文件资源管理器的实现完全可以使用建造者模式。

    建造者模式和工厂模式很相象,但是它们有很明显的区别。那就是工厂模式只是根据给的参数不同,工厂"生产"并返回不同的对象。建造者模式除了根据不同参数"生产"不同对象外,这些不同的对象还包含着不同的数据。建造者模式比工厂模式复杂就复杂在多"数据"这一部分。

    4、单例模式(Singleton)

     

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

     

    结构图:

    举例:有些类也需要计划生育。(《大话设计模式》中的例子)

     

    优点:对唯一实例的受控访问。

    缩小名空间。

     

    注:单例提供了全局惟一的访问入口,因此易于控制可能发生的冲突。

    与全局变量的比较:单例模式维护自身的实例化,在使用时是安全的。一个全局对象无法自行维护,也就无法避免重复创建多个实例,系统资源会被大量占用。更糟糕的是在很多情况下会出现逻辑问题,当这些对象访问相同的资源(例如串口时)时,会发生访问冲突。

     

    5、原型模式(Prototype)

     

    原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。子类实现克隆。

     

    结构图:

    举例:复印简历(《大话设计模式》中的例子)

    优点引入Prototype模式后不再需要一个与具体产品等级结构平行的工厂方法类,减少了类的构造,同时客户程序可以在运行时刻建立和删除原型(自定义界面时,此点尤其重要)

    此处引入的知识点式浅拷贝与深拷贝的问题:

     

    浅拷贝(Shallow Copy影子克隆):只复制对象的基本类型,对象类型,仍属于原来的引用。

    深拷贝(Deep Copy 深度克隆):不紧复制对象的基本类,同时也复制原对象中的对象.完全产生新对象。

     

    差别就是在对于引用类型的实现深拷贝和浅拷贝的时候的机制不同,前者是MemberwiseClone 方法实现,后者是通过继承实现ICloneable接口中提供的Clone方法,实现对象的深拷贝。

     

    注:原型模式同工厂模式,同样对客户隐藏了对象的创建工作,但是,与通过对一个类进行实例化来构造新对象不同的是,原型模式是通过拷贝一个现有对象生成新对象的,达到了"隔离类对象的使用者和具体类型(易变类)之间的耦合关系"的目的。

     

    本文链接:http://blog.csdn.net/caozhangyingfei0109/article/details/8608240

    本文作者:廊坊师范学院信息技术提高班九期张薄

     

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

    千次阅读 2019-03-31 12:17:53
    设计模式创建型模式:单例模式、简单工厂模式、工厂方法模式、抽象工厂模式、原型模式、建造者模式
  • 设计模式之美(3)-创建型-工厂模式

    万次阅读 2021-08-22 17:46:53
    工厂模式(Factory Design Pattern) 工厂模式分为三种类型:简单工厂、工厂方法和抽象工厂。 简单工厂(Simple Factory) 首先看一段代码然后把代码整理成简单工厂。 public class RuleConfigSource { public ...
  • 设计模式之美(4)-创建型-建造者模式

    万次阅读 2021-08-22 17:49:37
    建造者模式原理和代码非常简单, 难点在于应用场景。比如直接使用构造函数或者配合set方法就能创建对象,为什么还需要建造者模式创建呢?建造者模式和工厂模式都可以创建对象,那他们的区别在哪里呢? 为什么需要...
  • 创建型设计模式之Builder模式

    千次阅读 2017-04-30 11:28:05
     Builder模式是一步一步创建一个复杂对象的创建型模式,它允许用户在不知道内部构建细节的情况下,可以更精细地控制对象的构造流程。该模式是为了将构建复杂对象的过程和它的部件解耦,使得构建过程和部件的表示...
  • TS创建型设计模式之单例模式

    千次阅读 2019-01-15 00:12:47
    定义 Ensure a class has only one instance,and provide a global point ...应用(例子) //懒汉式单例又称惰性单例,前端不考虑,如果是后端可能会考虑高并发的情况下出现多个实例 class LazySingle { private ...
  • 设计模式源码下载地址 设计模式源码下载地址 1 单例模式 单例模式,也叫单子模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个...
  • 设计模式--创建型模式-单例模式

    万次阅读 2021-02-01 18:10:29
    单例模式是一种创建型设计模式, 让你能够保证一个类只有一个实例, 并提供一个访问该实例的全局节点。 问题 单例模式同时解决了两个问题, 所以违反了_单一职责原则_: 1. 保证一个类只有一个实例。 2. 为该实例...
  • Java设计模式创建型模式

    千次阅读 2016-05-12 16:11:07
    单例模式 应用场合: 在一个JVM中,该对象只需有一个实例存在 特点: 对于创建频繁的大型对象可以降低系统开销 减轻GC压力(Garbage collection) 安全(核心交易引擎) 实现方式: 加载类时直接创建类的实例...
  • 这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高...
  • 创建型设计模式---JAVA Singleton模式(单身模式)2007-10-26 10:04 Java Singleton 模式(单身模式,单态模式)是一种创建型设计模式。用来保证在运行的应用程序中,一个Class只是实例化一次,也就是只有一个相应的对象...
  • 这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。介绍意图:提供一个...
  • 设计模式 ① — 创建型模式

    千次阅读 2018-06-07 11:24:26
    创建型模式: 负责对象的创建。工厂方法模式(Factory Method);解决某个对象的创建工作。抽象工厂模式(Abstract Factory): 解决一系列相互依赖对象的创建工作。创建者模式(Builder):解决“一些复杂对象”的...
  • 设计模式创建型-单例模式

    千次阅读 多人点赞 2021-03-01 21:44:45
    目录第一章 单例模式介绍第二章 01-饿汉式(第一种)第三章 02-饿汉式(第二种)第四章 03-...单例模式(Singleton Pattern)是最简单的设计模式之一,这种类型的设计模式属于创建型模式,通过单例模式的方法创建的类
  • 设计模式之原型模式(创建型)

    千次阅读 2019-02-17 23:05:36
    文章目录模式定义模式结构原型模式类别模式应用 模式定义 原型模式(Prototype Pattern):原型模式是提供一个原型接口,提供原型的克隆,创建新的对象,是一种对象创建型模式。 模式结构 原型模式包括如下角色 ...
  • 大道至简:让你顿悟创建型设计模式 佛教中有一种修行方法叫做“顿悟”,简单的说突然间想明白了。我不是佛教弟子,但幸运的是这两天重温设计模式的时候,也顿悟了一把:每个创建型模式一句话总结! 既然是顿悟,我...
  • 这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。介绍意图:将一个复杂的构建与其表示相分离,使得同样的构建过程...
  • 这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。介绍意图:定义一个创建对象的...
  • 设计模式——创建型模式

    千次阅读 2011-11-30 21:02:50
    抽象工厂模式、建造者模式、工厂方法模式、原型模式、单例模式都属于创建型模式,即与对象的创建有关的模式,但是功能越接近越难以区分,他们在创建对象的过程中各自有承担着什么杨的责任,他们该在什么地方使用呢?...
  • 这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,...
  • 【面向对象】——设计模式创建型模式

    千次阅读 热门讨论 2014-12-23 14:52:15
    创建型模式创建型模式抽象了实例化的过程。它们帮助一个系统独立于如何创建、组合和表示它的那些对象。创建型模式都会讲关于该系统使用哪些具体的类的信息封装起来。允许客户用结构和功能差别很大的“产品”对象...
  • 这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。是一种能快速创建相似对象的模式。在软件开发中应用较为广泛。 原型模式优缺点 优点: 1、 当创建新的对象实例较为复杂时,使用原型模式可以...
  • Java设计模式创建型:单例模式

    万次阅读 2018-11-01 15:58:10
    单例模式可以确保系统中某个类只有一个实例,该类...单例模式的优点在于:系统中只存在一个共用的实例对象,无需频繁创建和销毁对象,节约了系统资源,提高系统的性能。可以严格控制客户怎么样以及何时访问单例对象。
  • 设计模式之建造者模式(创建型)

    千次阅读 2018-04-24 11:04:29
    建造者模式属于23种设计模式中的创建型模式,可以理解为创建对象的一种很好的方法。 所谓建造者模式就是将组件和组件的组件过程分开,然后一步一步建造一个复杂的对象。所以建造者模式又叫生成器模式。 建造者模式...
  •  每几种模式之间都有一定的联系,从中发现它们的相同点和不同点,研究发生改变的节点,这就是本篇博客所要说明的创建型设计模式之间的联系。它们包括:简单工厂模式、单例模式、工厂方法模式、抽象工厂模式、建造者...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 265,587
精华内容 106,234
关键字:

创建型设计模式的应用