using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace DesignFactory.Prototype
{
/// <summary>
/// 原型模式
/// 类,通过实现ICloneable借口 可以实现Clone方法
/// </summary>
class Prototype
{
}
abstract class ColorPrototye
{
public abstract ColorPrototye Clone();
}
class Color : ColorPrototye
{
private int red, green, blue;
public Color(int red, int green, int blue)
{
this.red = red;
this.green = green;
this.blue = blue;
}
public override ColorPrototye Clone()
{
return (ColorPrototye)this.MemberwiseClone();
}
public void Display()
{
Console.WriteLine("RGB values are:{0},{1},{2}",red,green,blue);
}
}
class ColorManager
{
Hashtable colors = new Hashtable();
public ColorPrototye this[string name]
{
get { return (ColorPrototye)colors[name]; }
set { colors.Add(name,value); }
}
}
class PrototypeApp
{
public static void Main(string[] agrs)
{
ColorManager colormanager = new ColorManager();
colormanager["red"] = new Color(25, 0, 0);
colormanager["green"] = new Color(0,255, 0);
colormanager["blue"] = new Color(0, 0, 255);
colormanager["angry"] = new Color(255, 54, 0);
colormanager["peace"] = new Color(128, 211, 128);
colormanager["flame"] = new Color(211,34, 20);
string colorName = "red";
Color c1 = (Color)colormanager[colorName].Clone();
c1.Display();
colorName = "peace";
Color c2 = (Color)colormanager[colorName].Clone();
c1.Display();
colorName = "flame";
Color c3 = (Color)colormanager[colorName].Clone();
c1.Display();
}
}
}

【设计模式】之 Prototype 原型模式相关推荐

  1. java 设计模式 prototype_Java设计模式之Prototype原型模式

    一.场景描述 创建型模式中,从工厂方法模式,抽象工厂模式,到建造者模式,再到原型模式,我的理解是,创建对象的方式逐步从编码实现转向内存对象处理. 例如,在"仪器数据采集器"的子类/ ...

  2. 精读《设计模式 - Prototype 原型模式》

    Prototype(原型模式) Prototype(原型模式)属于创建型模式,既不是工厂也不是直接 New,而是以拷贝的方式创建对象. 意图:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的 ...

  3. Prototype原型模式(创建型模式)

    1.原型模式解决的问题 现在有一个抽象的游戏设施建造系统,负责构建一个现代风格和古典风格的房屋和道路. 前提:抽象变化较慢,实现变化较快(不稳定) 整个抽象的游戏设施建造系统相对变化较慢,本例中只有一 ...

  4. Java描述设计模式(05):原型模式

    一.原型模式简介 1.基础概念 原型模式属于对象的创建模式.通过给出一个原型对象来指明所有创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象. 2.模式结构 原型模式要求对象实现一个 ...

  5. Prototype 原型模式

    一.意图:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象.(Specify the kinds of objects to create using a prototypical in ...

  6. JavaScript 面向对象 (prototype 原型模式)

    一. JavaScript 设计思想 1994年,网景公司(Netscape)发布了Navigator浏览器0.9版.这是历史上第一个比较成熟的网络浏览器,轰动一时.但是,这个版本的浏览器只能用来浏览 ...

  7. 面向对象设计模式纵横谈:Prototype 原型模式(笔记记录)

       有一段时间没写东西了,今天继续把没写完的设计模式写完,今天这堂课是创建型设计模式的最后一堂课,原型设计模式,它同样也是解决了对象在创建的过程中的解耦合的情况,面对变化使代码更稳定,更准确的说是使 ...

  8. 设计模式 - Prototype 原型模式

    微信搜索[三太子敖丙]关注这个贪财好色的程序员. 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试完整考点.资料以及我的系列文章. 前言 在设计模 ...

  9. C#设计模式系列:原型模式(Prototype)

    1.原型模式简介 1.1>.定义 原型模式(Prototype)用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象. 1.2>.使用频率 中 1.3>.原型模式应用 首先 ...

  10. 《研磨设计模式》chap9 原型模式Prototype

    场景:订单拆分1000份,然后还有两种订单:个人和公司的. 1. 常规解决 /*** 订单的接口*/ public interface OrderApi {/*** 获取订单产品数量* @return ...

最新文章

  1. python 字符串形式的列表 转 列表
  2. android 程序运行不了,当应用程序在后台运行或不运行时,Android – 推送通知工作不正确...
  3. oFono安装和启动
  4. Android SQLiteDatabase分析
  5. 听说,那谁谁谁是同性恋?
  6. Intellij IDEA 中的 Debug 控制台输出窗口消失
  7. mysql创建表的默认大小_mysql InnoDB建表时设定初始大小的方法
  8. GPS定位,经纬度附近地点查询–C#实现方法
  9. JSON 解析之 GSON
  10. 高频面试题:秒杀系统设计
  11. Electron 打包时下载 xxx-electron-v1.6.8-arch-x64.zip 文件出错
  12. 【Python】Python 操作 elasticsearch 版本兼容问题导致报错的解决方案
  13. ceph 部署后rbd块设备读写只有10M左右,慢的更龟速一样,怎样解决!,求各位博友指点……,感激不尽……...
  14. LeetCode148经典题目记录(链表排序:快排+递归归并+迭代归并)
  15. python爬虫之QQ空间登陆获取信息(超级详细)
  16. pdf文件加水印输出图片
  17. 2012年世界500强排行榜(企业名单)
  18. npm install XXX 报错:error An unexpected error occurred:
  19. 基于mysql 批量插入100w测试数据
  20. Win7系统服务优化攻略

热门文章

  1. 减治法(Decrease and Conquer)
  2. [BZOJ1974][SDOI2010]代码拍卖会[插板法]
  3. 浏览器页面资源加载过程与优化
  4. 微信扫码登录_JAVA
  5. Python输出菱形图案
  6. p6000 深度学习_英伟达推Quadro新显卡,支持VR、深度学习等技术
  7. Nginx 服务器配置域名证书
  8. vue 项目实践 -ele 表单验证
  9. android+客户端+教程,Android新浪客户端开发教程完整版.pdf
  10. 基于EOS的区块链捐赠平台合约发开