概述
建造者模式也是一种创建式的模式,其中有几个主要的组成部分,建造产品,建造者接口,建造者,指挥者这四部分组合而成,逻辑是,先有须要建造的产品,然后指挥者指挥须要建造什么,对产品进行规定,然后建造者那到须要建造的对象再去建造。逻辑实现如下
需求:现有一个修建队,须要再天津修建一个古典风格的建造,材料是混泥土,请设计实现。
建造者模式
- internal class Program
- {
- private static void Main(string[] args)
- {
- IBuider buider = new HouseBuilder();//建造者
- Director director = new Director(buider);//指挥者
- director.GetHouseBuilder();//指挥者指挥需要建造什么
- House house = buider.GetHouse();
- Console.WriteLine(house);
- }
- }
- public class House//房屋
- {
- public string Material { get; set; }//材料
- public string DesignDrawing { get; set; }//设计图
- public string Location { get; set; }//位置
- public override string ToString()
- {
- return $"修建房屋,材料是:{Material} 设计图是:{DesignDrawing} 位置是:{Location}";
- }
- }
- public interface IBuider//建造者接口
- {
- void SetMaterial(string _Material);
- void SetDesignDrawing(string _DesignDrawing);
- void SetLocation(string _Location);
- House GetHouse();
- }
- public class HouseBuilder : IBuider//建造者
- {
- private House _House = new House();
- public House GetHouse()
- {
- return _House;
- }
- public void SetDesignDrawing(string _DesignDrawing)
- {
- _House.DesignDrawing = _DesignDrawing;
- }
- public void SetLocation(string _Location)
- {
- _House.Location = _Location;
- }
- public void SetMaterial(string _Material)
- {
- _House.Material = _Material;
- }
- }
- public class Director//指挥者
- {
- private IBuider _HouseBuilder;
- public Director(IBuider houseBuilder)
- {
- _HouseBuilder = houseBuilder;
- }
- public void GetHouseBuilder()
- {
- _HouseBuilder.SetMaterial("混泥土");
- _HouseBuilder.SetLocation("天津");
- _HouseBuilder.SetDesignDrawing("古典风格");
- }
- }
复制代码 输出结果(情况C#控制台程序):
修建房屋,材料是:混泥土 设计图是:古典风格 位置是:天津
建造者模式是将指挥者和建造者分离开来,如果有新的工程,只须要指挥者更改需求,就可以完成,不须要动建造者的代码,进步了代码的可维护性和复用性。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |