创建型模式 - 原型模式Prototype】的更多相关文章

在本节中,我们将学习和使用原型模式:这一节学习的原型模式也是创建型 模式的其中之一.再次复习一下:创建型 模式就是描述如何去更好的创建一个对象. 我们都知道,在JAVA 语言中.使用new 关键字创建一个新对象.将新的对象放到堆内存 里面.当然,这个内存肯定是有大小限制的,况且,JAVA 不同于C语言等. 有内存管理机制,就是我们常说的垃圾回收器GC,才可以保证内存不被溢出. 说这些其实就是为了表示:为啥要用单例模式,能节省内存的时候,能用一个对象解决重复的事情,绝对不会创建多个. 概述 原型模…
原型模式: 原型模式 概述 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. 适用性 .当一个系统应该独立于它的产品创建.构成和表示时. .当要实例化的类是在运行时刻指定时,例如,通过动态装载. .为了避免创建一个与产品类层次平行的工厂类层次时. .当一个类的实例只能有几个不同状态组合中的一种时. 建立相应数目的原型并克隆它们可能比每次用合适的状态手工实例化该类更方便一些. 参与者 . Prototype 声明一个克隆自身的接口. . ConcretePrototype 实现一个…
参考 1. 设计模式:原型模式 | 博客园 2. Java clone深拷贝.浅拷贝 | CSDN 3. Cloneable接口和Object的clone()方法 | 博客园 原型模式(Prototype Pattern) 指定创建对象的种类,并且通过拷贝创建新的对象. 原型模式复制的克隆对象≠原对象,内存地址段不同,但是属性状态相同. 角色 角色名称 中文名称 作用描述 Client 客户类 让一个原型克隆自身从而获得新的对象 Prototype 原型接口 声明克隆的接口 ConcretePr…
原型模式: 原型模式主要针对模型对象类型的克隆,对已有构造好的对象进行复制获取一个新的对象实例.比如我们在获取一个对象并成功赋值后,要传递给多个处理类去处理. 打个比方:吃面是个处理类,面是个模型对象.我们将面从锅里煮熟(模型对象的赋值加工)出来后,分到好几个碗中(克隆).然后再根据客户的要求对克隆出的面由不同的吃面对象再加工(放辣子,放醋,盐少等等),最后呈现到每个顾客面前的面就都不一样了. 表现形式: 1. 简单形式 2. 登记形式 1.简单形式 浅克隆要实现cloneable接口,因克隆是…
原型模式 是一种创建型设计模式, 使你能够复制已有对象, 而又无需使代码依赖它们所属的类. 問題: 如果我們要複製一個類實例: 首先, 你必须新建一个属于相同类的对象. 然后, 你必须遍历原始对象的所有成员变量, 并将成员变量值复制到新对象中. 但是:并非所有对象都能通过这种方式进行复制, 因为有些对象可能拥有私有成员变量, 它们在对象本身以外是不可见的. 而且我們複製的時候需要知道勢力的具體類,如果這個類實現的是接口,那就男判定 解決: 原型模式将克隆过程委派给被克隆的实际对象. 模式为所有支…
生成器模式的主要思想:将产品对象的创建与表现分离开,并且同样的创建过程可以有不同的产品表现. 直白一点可以理解为:待创建的对象是复杂的,一般情况下是需要经过多个步骤的创建后,最终才能将完整产品创建好,而且每个步骤所创建的都只是产品的一部分而已.这一切的创建步骤,由统一的执导者来完成,称之为:Director(即:导演).而产品以及组成产品的各个部分的生成细节,由生成器(或者称之为创建者.构建者也行)来完成,称之为:Builder.因此,类关系图参考如下: 由图可知,对Client来说,同样的执导…
单例模式可以说是所有23种设计模式中最为简单的一个,没有之一.其主要思想就是保证整个应用环境中,最多只会有一个对象的实例.类关系图参考如下: 在c++中,单例模式的实现,较为常用的实现方式一般为: namespace singleton { /************************************************************************** * create : (jacc.kim) [5-17-2016] * summary : 单例类 ***…
# coding = utf-8 from abc import ABCMeta, abstractmethod # 简单工厂模式 class Animal(metaclass=ABCMeta): @abstractmethod def do_say(self): pass class Dog(Animal): def do_say(self): print('Bhow Bhow!!!') class Cat(Animal): def do_say(self): print('Meow Meow…
  设计模式(四)原型模式Prototype(创建型) 1.   概述 我们都知道,创建型模式一般是用来创建一个新的对象,然后我们使用这个对象完成一些对象的操作,我们通过原型模式可以快速的创建一个对象而不需要提供专门的new()操作就可以快速完成对象的创建,这无疑是一种非常有效的方式,快速的创建一个新的对象. 例子1:孙悟空拔下一嘬猴毛,轻轻一吹就会变出好多的孙悟空来. 例子2:寄个快递下面是一个邮寄快递的场景:“给我寄个快递.”顾客说.“寄往什么地方?寄给……?”你问.“和上次差不多一样,只是…
原型模式  prototype 意图 用原型实例指定需要创建的对象的类型,然后使用复制这个原型对象的方法创建出更多同类型的对象   显然,原型模式就是给出一个对象,然后克隆一个或者更多个对象 小时候看过的动画片<西游记>,主题曲猴哥中有一句“拔一根毫毛 ,吹出猴万个 ”这就是原型模式 孙悟空作为原型对象,“拔一根毫毛 ,吹” 这就是调用复制对象方法,“猴”万个,就是结果了,创建了“万个” 猴子  原型模式的根本-拷贝 原型模式的根本在于对象的拷贝 说白了就是:如何复制一个对象?   对象的表示…