建造者模式
来源:互联网 发布:winpe nvme 网络 编辑:程序博客网 时间:2024/06/04 18:12
namespace 建造者模式{ /* 建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构造过程可以创建不同的表示*/ class Program { static void Main(string[] args) { ConcreteBuilder builder = new ConcreteBuilder(); HtmlDirector director = new HtmlDirector(); director.ConstructHtml(builder); } } public class Html { public string Head { get; set; } public string Body { get; set; } public void SetHead(string content) { this.Head = content; Console.WriteLine("head=:" + content); } public void SetBody(string content) { this.Body = content; Console.WriteLine("body=:" + content); } public override string ToString() { return string.Format("head={0}\r\nbody={1}", this.Head, this.Body); } } /// <summary> /// 抽象建造者(定义需要建造的功能模版) /// </summary> public interface IHtmlBuilder { void BuildHeader(); void BuilderBody(); Html BuildHtml(); } /// <summary> /// 具体建造者 (实现要建造的具体功能,建造的具体过程和细节不用外部知道,建造是稳定的) /// </summary> public class ConcreteBuilder : IHtmlBuilder { private Html html; public ConcreteBuilder() { html = new Html(); } public void BuildHeader() { html.SetHead("<header></header>"); } public void BuilderBody() { html.SetBody("<body></body>"); } public Html BuildHtml() { return html; } } /// <summary> /// 指导者 (具体怎么建造、建造流程、顺序) /// </summary> public class HtmlDirector { /// <summary> /// 构造具体的对象 /// </summary> /// <param name="builder">建造者</param> /// <returns>构造完毕的实体</returns> public Html ConstructHtml(IHtmlBuilder builder) { //指导者指挥 建造过程 builder.BuildHeader(); builder.BuilderBody(); return builder.BuildHtml(); } }}
运行结果:
0 0
- Builder 建造者模式
- 建造者模式
- 设计模式-------建造者
- 建造者模式
- 建造者模式(Builder)
- 建造者模式(Builder)
- 建造者模式
- 建造者模式 - builder
- 建造者模式
- Builder建造者模式
- 建造者模式(Builder)
- 建造者模式(builder)
- 建造者模式
- java建造者模式
- 建造者模式
- 建造者模式
- 建造者模式(Builder)
- 建造者模式
- 新人求助各路大神,cocos EditBox 旋转之后无法输入的问题
- 基于数组的栈
- 叨叨原型图
- ExpandableListView 去掉默认箭头,设置成别的图片
- 【cocos2d-x 】解决scrollview上的menu拖动问题以及menu item在可视区外仍能触发的问题
- 建造者模式
- 获取时间
- 有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或者二级,要走上m级,共有多少走法?
- Longest Increasing Path in a Matrix
- Java虚拟机 & 运行时数据区
- Codeforces-200B-Drinks
- Andorid自动朗读TTS使用
- JAVA温习课堂4
- BZOJ 4569 [Scoi2016]萌萌哒