【设计模式】之 Prototype 原型模式
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 原型模式相关推荐
- java 设计模式 prototype_Java设计模式之Prototype原型模式
一.场景描述 创建型模式中,从工厂方法模式,抽象工厂模式,到建造者模式,再到原型模式,我的理解是,创建对象的方式逐步从编码实现转向内存对象处理. 例如,在"仪器数据采集器"的子类/ ...
- 精读《设计模式 - Prototype 原型模式》
Prototype(原型模式) Prototype(原型模式)属于创建型模式,既不是工厂也不是直接 New,而是以拷贝的方式创建对象. 意图:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的 ...
- Prototype原型模式(创建型模式)
1.原型模式解决的问题 现在有一个抽象的游戏设施建造系统,负责构建一个现代风格和古典风格的房屋和道路. 前提:抽象变化较慢,实现变化较快(不稳定) 整个抽象的游戏设施建造系统相对变化较慢,本例中只有一 ...
- Java描述设计模式(05):原型模式
一.原型模式简介 1.基础概念 原型模式属于对象的创建模式.通过给出一个原型对象来指明所有创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象. 2.模式结构 原型模式要求对象实现一个 ...
- Prototype 原型模式
一.意图:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象.(Specify the kinds of objects to create using a prototypical in ...
- JavaScript 面向对象 (prototype 原型模式)
一. JavaScript 设计思想 1994年,网景公司(Netscape)发布了Navigator浏览器0.9版.这是历史上第一个比较成熟的网络浏览器,轰动一时.但是,这个版本的浏览器只能用来浏览 ...
- 面向对象设计模式纵横谈:Prototype 原型模式(笔记记录)
有一段时间没写东西了,今天继续把没写完的设计模式写完,今天这堂课是创建型设计模式的最后一堂课,原型设计模式,它同样也是解决了对象在创建的过程中的解耦合的情况,面对变化使代码更稳定,更准确的说是使 ...
- 设计模式 - Prototype 原型模式
微信搜索[三太子敖丙]关注这个贪财好色的程序员. 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试完整考点.资料以及我的系列文章. 前言 在设计模 ...
- C#设计模式系列:原型模式(Prototype)
1.原型模式简介 1.1>.定义 原型模式(Prototype)用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象. 1.2>.使用频率 中 1.3>.原型模式应用 首先 ...
- 《研磨设计模式》chap9 原型模式Prototype
场景:订单拆分1000份,然后还有两种订单:个人和公司的. 1. 常规解决 /*** 订单的接口*/ public interface OrderApi {/*** 获取订单产品数量* @return ...
最新文章
- python 字符串形式的列表 转 列表
- android 程序运行不了,当应用程序在后台运行或不运行时,Android – 推送通知工作不正确...
- oFono安装和启动
- Android SQLiteDatabase分析
- 听说,那谁谁谁是同性恋?
- Intellij IDEA 中的 Debug 控制台输出窗口消失
- mysql创建表的默认大小_mysql InnoDB建表时设定初始大小的方法
- GPS定位,经纬度附近地点查询–C#实现方法
- JSON 解析之 GSON
- 高频面试题:秒杀系统设计
- Electron 打包时下载 xxx-electron-v1.6.8-arch-x64.zip 文件出错
- 【Python】Python 操作 elasticsearch 版本兼容问题导致报错的解决方案
- ceph 部署后rbd块设备读写只有10M左右,慢的更龟速一样,怎样解决!,求各位博友指点……,感激不尽……...
- LeetCode148经典题目记录(链表排序:快排+递归归并+迭代归并)
- python爬虫之QQ空间登陆获取信息(超级详细)
- pdf文件加水印输出图片
- 2012年世界500强排行榜(企业名单)
- npm install XXX 报错:error An unexpected error occurred:
- 基于mysql 批量插入100w测试数据
- Win7系统服务优化攻略
热门文章
- 减治法(Decrease and Conquer)
- [BZOJ1974][SDOI2010]代码拍卖会[插板法]
- 浏览器页面资源加载过程与优化
- 微信扫码登录_JAVA
- Python输出菱形图案
- p6000 深度学习_英伟达推Quadro新显卡,支持VR、深度学习等技术
- Nginx 服务器配置域名证书
- vue 项目实践 -ele 表单验证
- android+客户端+教程,Android新浪客户端开发教程完整版.pdf
- 基于EOS的区块链捐赠平台合约发开