无废话C#设计模式之六:Builder
日期:2007年10月23日 作者: 查看:[大字体 中字体 小字体]-
本系列文章将向大家介绍一下C#的设计模式,此为第六篇文章,相信对大家会有所帮助的。废话不多说,继续来看。
意图
将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。
场景
在电脑城装机总有这样的经历。我们到了店里,先会有一个销售人员来询问你希望装的机器是怎么样的配置,他会给你一些建议,最终会形成一张装机单。和客户确定了装机配置以后,他会把这张单字交给提货的人,由他来准备这些配件,准备完成后交给装机技术人员。技术人员会把这些配件装成一个整机交给客户。
不管是什么电脑,它总是由CPU、内存、主板、硬盘以及显卡等部件构成的,并且装机的过程总是固定的:
把主板固定在机箱中
把CPU安装到主板上
把内存安装到主板上
把硬盘连接到主板上
把显卡安装到主板上
但是,每台兼容机的部件都各不相同的,有些配置高一点,有些配置低一点,这是变化点。对于装机技术人员来说,他不需要考虑这些配件从哪里来的,他只需要把他们组装在一起了,这是稳定的装机流程。要把这种变化的配件和稳定的流程进行分离就需要引入Builder模式。示例代码
using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
namespace BuilderExemple
{
class Program
{
static void Main(string[] args)
{
ComputerFactory factory = new ComputerFactory();
ComputerBuilder office = new OfficeComputerBuilder();
factory.BuildComputer(office);
office.Computer.ShowSystemInfo();
ComputerBuilder game = new GameComputerBuilder();
factory.BuildComputer(game);
game.Computer.ShowSystemInfo();
}
}
class ComputerFactory
{
public void BuildComputer(ComputerBuilder cb)
{
Console.WriteLine();
Console.WriteLine(">>>>>>>>>>>>>>>>>>Start Building " + cb.Name);
cb.SetupMainboard();
cb.SetupCpu();
cb.SetupMemory();
cb.SetupHarddisk();
cb.SetupVideocard();
Console.WriteLine(">>>>>>>>>>>>>>>>>>Build " + cb.Name + " Completed");
Console.WriteLine();
}
}
abstract class ComputerBuilder
{
protected string name; - [1] [2] [3] [4] 下一页
-
- 无废话C#设计模式之六:Builder 相关文章:
- ·多个技巧让局域网内互访无障碍
- ·用十大安全策略加固无线局域网安全
- ·Vista系统无法开启打印机共享怎么办?
- ·Vista防火墙导致网络无法访问解决方法
- ·Vista系统中CHM文档无法打开解决方法
- ·Sandboxie隔离病毒木马 上网下载安装再无忧
- ·Windows Vista修复无法上网技巧
- ·Windows Vista无法上网 让它自己修复网络
- ·配置无线局域网 图解WLAN配置攻略
- ·无线局域网应用疑难解惑
- 无废话C#设计模式之六:Builder 相关软件
- ·《冰封王座》地图:真三国无双v4.3C2 简繁
- ·《冰封王座》地图:英雄无敌圣战之日V1.07正式版
- ·无聊的扯纸卷
- ·魔兽争霸地图 真三国无双 4.3D2
- ·GBA《真三国无双Adv》火爆试玩
- ·《无规则高尔夫大师赛》试玩
- ·《无人岛物语4》简体中文版试玩
- ·《魔法门之英雄无敌1》中文版试玩经典怀旧
- ·《真三国无双3》PC试玩版 百万大作
- ·《拳皇无限版》格斗试玩
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
上一篇:设计理论:向前一步是设计
精品推荐
热点TOP10
- ·C++Builder4.0实现在线接收电子邮件
- ·无废话C#设计模式之六:Builder
- ·无废话C#设计模式之四:Factory Method
- ·菜鸟入门 认识C#中的委托和事件
- ·C#动态生成树型结构的Web程序设计
- ·用WinSock控件编写网络聊天器
- ·计算机短信DIY
- ·QuickReport基本知识
- ·ODBC中的同步与异步执行模式
- ·获得文件的版本信息
- ·C++ Builder下数据库报表Master/Detail关系功能的实现
- ·利用C++ Builder 5.0创建用户自己的网上聊天程序
- ·BCB和Oracle结合构造C/S系统时千年问题
- ·BCB中实现全屏幕OpenGL
- ·C++BUILDER中一些实现界面效果的技巧
- ·C++Builder如何响应消息及自定义消息
- ·使用C++Builder制作提取图标程序
- ·C++ Builder中消息处理过程及应用
- ·在 C++ Builder中利用串行通信控件编程
- ·利用组件传送文件
