设计模式学习笔记五——Prototype模式
场景:ThinkPad的主板和CPU有多种,根据系列不同,如何根据已有的硬盘和CPU生产新的主板和CPU。
结构
代码实现
{
public abstract class CPU
{
public abstract CPU Clone();
// 打上流水线序列号之类每个克隆品不同的属性
public abstract void DoSomething();
}
public class T43CPU : CPU
{
public override CPU Clone()
{
return (CPU)this.MemberwiseClone();
}
public override void DoSomething()
{
}
}
public class T60CPU : CPU
{
public override CPU Clone()
{
return (CPU)this.MemberwiseClone();
}
public override void DoSomething()
{
}
}
}
{
public abstract class Mainboard
{
public abstract Mainboard Clone();
// 打上流水线序列号之类每个克隆品不同的属性
public abstract void DoSomething();
}
public class T43Mainboard : Mainboard
{
public override Mainboard Clone()
{
return (Mainboard)this.MemberwiseClone();
}
public override void DoSomething()
{
}
}
public class T60Mainboard : Mainboard
{
public override Mainboard Clone()
{
return (Mainboard)this.MemberwiseClone();
}
public override void DoSomething()
{
}
}
}
*动机:使用原型实例指定创建对象的种类,然后通过拷贝这些原型来创建新的对象。某些结构复杂对象面临着剧烈变化,但拥有比较稳定一致的接口,如何隔离出这些易变对象,使客户程序不随之改变?
*场景:ThinkPad的主板和CPU有多种,根据系列不同,如何根据已有的硬盘和CPU生产新的主板和CPU。
*/
namespace DesignPattern.Prototype
{
public class ThinkPadFactory
{
public Mainboard CreateMainboard(Mainboard mainBoard)
{
Mainboard mainBoardCopy = mainBoard.Clone();
mainBoardCopy.DoSomething();
return mainBoard;
}
public CPU CreateCPU(CPU cpu)
{
CPU cpuCopy = cpu.Clone();
cpu.DoSomething();
return cpu;
}
}
}
转载于:https://www.cnblogs.com/Charly/archive/2007/06/06/773482.html
设计模式学习笔记五——Prototype模式相关推荐
- 设计模式学习笔记——原型(Prototype)框架
设计模式学习笔记--原型(Prototype)框架 @(设计模式)[设计模式, 原型模式, prototype] 设计模式学习笔记原型Prototype框架 基本介绍 原型案例 类图 实现代码 Pro ...
- 设计模式学习笔记——解释器(Interpreter)模式
设计模式学习笔记--解释器(Interpreter)模式 @(设计模式)[设计模式, 解释器模式, Interpreter] 设计模式学习笔记解释器Interpreter模式 基本介绍 解释器案例 类 ...
- 设计模式学习笔记——命令(Command)模式
设计模式学习笔记--命令(Command)模式 @(设计模式)[设计模式, 命令模式, command] 设计模式学习笔记命令Command模式 基本介绍 命令案例 类图 实现代码 Command接口 ...
- 设计模式学习笔记——代理(Proxy)模式
设计模式学习笔记--代理(Proxy)模式 @(设计模式)[设计模式, 代理模式, proxy] 设计模式学习笔记代理Proxy模式 基本介绍 代理案例 类图 实现代码 Printable接口 Pri ...
- 设计模式学习笔记——状态(State)模式框架
设计模式学习笔记--状态(State)模式框架 @(设计模式)[设计模式, 状态模式, State] 设计模式学习笔记状态State模式框架 基本介绍 状态案例 类图 实现代码 State接口 Day ...
- 设计模式学习笔记——备忘录(Memento)模式
设计模式学习笔记--备忘录(Memento)模式 @(设计模式)[设计模式, 备忘录模式, memento] 设计模式学习笔记备忘录Memento模式 基本介绍 备忘录案例 类图 实现代码 Memen ...
- 设计模式学习笔记——观察者(Observer)模式
设计模式学习笔记--观察者(Observer)模式 @(设计模式)[设计模式, 观察者模式, Observer] 设计模式学习笔记观察者Observer模式 基本介绍 观察者案例 类图 实现代码 Ob ...
- 设计模式学习笔记——外观(Facade)模式
设计模式学习笔记--外观(Facade)模式 @(设计模式)[设计模式, 外观模式, facade] 设计模式学习笔记外观Facade模式 基本介绍 外观案例 类图 实现代码 Database类 ma ...
- 设计模式学习笔记——访问者(Visitor)模式
设计模式学习笔记--访问者(Visitor)模式 @(设计模式)[设计模式, 访问者模式, visitor] 设计模式学习笔记访问者Visitor模式 基本介绍 访问者案例 类图 实现代码 Visit ...
最新文章
- 计算机累加器有加法器功能吗,累加器-累加器ACC的作用
- SQL Server相关知识
- python高阶函数(三分钟读懂)
- 记得收藏这12个爆款 Java 开源项目!【附源码】
- 程序猿加班到深夜,你经历过没?
- Unity初级坦克大战游戏实现(Battle Tank)带工程源码资源包(二)
- 百度移动搜索落地页体验广告白皮书3.0上线
- 欧姆龙OMRON CP1H PLC与台达 DOP-B触摸屏通讯
- 溯光者:超简单,一文读懂显卡型号编码数字、字母怎么看,都是什么意思?
- RL Python练习
- linux下模拟键盘的几种方法
- 工商银行携手数美科技,赋能数字化业务高质量发展
- Abbirb120型工业机器人_工控产品-ABB IRB120工业机器人-IRB120
- 中文分词软件包的使用
- android开发培训大纲,华图教育-Android应用开发培训教学大纲
- 闪电搜索算法,Lightning search algorithm
- 内置数据库H2和内置Redis(测试结果来啦)
- 蓝桥杯算法训练 无聊的逗-详细注释版
- 源码学习-net/http
- 四川翌加:抖音视频要进入热门流量池,需经历哪几个阶段
热门文章
- 计算机二维全息图原理,三维信息加密如何使用计算全息进行
- burpsuite csrf攻击_WEB安全之CSRF
- linux 挂载san存储,新手看招:Linux操作系统下挂载SAN资源
- Linux 软件包管理器的目的是什么,Linux软件包的管理--RPM包管理器
- 学习笔记6-小项目-走迷宫、推箱子
- linux心跳包检测代码_OpenSSL心跳包越界读敏感信息泄漏漏洞
- leetcode512. 游戏玩法分析 II(SQL)
- MachineLearning(4)-核函数与再生核希尔伯特空间
- 《Python Cookbook 3rd》笔记(1.12):序列中出现次数最多的元素
- html5语句大全,html5基础语句(学习)