文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

C#怎么实现建造者模式

2023-07-02 16:53

关注

这篇文章主要介绍“C#怎么实现建造者模式”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C#怎么实现建造者模式”文章能帮助大家解决问题。

场景:我们的冒险家,现在需要去武器商店买一把兵器,有刀和剑两种武器,冒险者可以告诉武器商人需要哪一种武器,然后武器商人进行锻造,最后把产品给冒险者,用建造者模式如何实现?

1.什么是建造者模式?

之前写过简单工厂、工厂方法以及抽象工厂,这些东西都是创建型设计模式,同样建造者模式也是一种创建型的设计模式,也叫生成器模式。

书上的解释:将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示

C#怎么实现建造者模式

四个要素

2.实现场景

分析场景:

Product就好比是场景中生成的武器(刀和剑)

Builder 就好比武器商人(抽象锻造方法)

ConcreteBuilder 刀和剑的具体锻造方式

Director 就是冒险者,指挥武器商人进行产品的锻造

C#怎么实现建造者模式

Weapon.cs

    public class Weapon    {        //定义一个List用来存储武器的每一个部分        IList<string> parts = new List<string>();        //定义一个方法组装武器        public void Combine(string part)        {            parts.Add(part);        }        //将每一个部分打印出来        public void show()        {            Console.WriteLine("---------");            foreach (var part in parts)            {                Console.WriteLine(part);            }        }    }

Builder.cs

    public abstract class Builder    {        //生成武器主体部分         public abstract void CreateMainPart();         //生成武器其他部分        public abstract void CreateOtherPart();        //返回武器        public abstract Weapon ReturnWeapon();    }

KnifeBuilder.cs

    public class KnifeBuilder : Builder    {        private Weapon Knife = new Weapon();        public override void CreateMainPart()        {            Knife.Combine("添加了刀身");        }        public override void CreateOtherPart()        {            Knife.Combine("添加了刀把");        }        public override Weapon ReturnWeapon()        {            return Knife;        }    }

SwordBuilder.cs

    public class SwordBuilder:Builder    {        private Weapon Sword = new Weapon();        public override void CreateMainPart()        {            Sword.Combine("添加了剑身");        }        public override void CreateOtherPart()        {            Sword.Combine("添加了剑柄");        }        public override Weapon ReturnWeapon()        {            return Sword;        }    }

Adventurer.cs

    public class Adventurer    {        public void Buy(Builder b)        {            b.CreateMainPart();            b.CreateOtherPart();        }    }

客户端

    class Program    {        static void Main(string[] args)        {            Adventurer adventurer = new Adventurer();            Builder swordBuilder = new SwordBuilder();            Builder knifeBuilder = new KnifeBuilder();            adventurer.Buy(swordBuilder);            Weapon sword = swordBuilder.ReturnWeapon();            sword.show();            adventurer.Buy(knifeBuilder);            Weapon knife = knifeBuilder.ReturnWeapon();            knife.show();            Console.ReadLine();        }    }

结果:

C#怎么实现建造者模式

关于“C#怎么实现建造者模式”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网行业资讯频道,小编每天都会为大家更新不同的知识点。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯