【C#】Creational Patterns Builder Mode

The Builder design pattern separates the construction of a complex object from its representation so that the same construction process can create different representations.


学习目标: 创建者模式的概念及实务

学习难度: ☆☆☆


namespace ConsoleApp1
{
    class GameFactory
    {
        public void Develop(Programmer programmer) 
        {
            programmer.Coding();
        }
    }

    abstract class Programmer
    {
        public abstract void Coding();
        
        public abstract Project GetProject();
    }

    class ClientProgrammer : Programmer
    {
        private Project project = new Project();

        public override void Coding()
        {
            project.Name = "AOE3 RTS";
        }

        public override Project GetProject()
        {
            return project;
        }
    }

    class ServerProgrammer : Programmer
    {
        private Project project = new Project();

        public override void Coding()
        {
            project.Name = "Socket TCP";
        }

        public override Project GetProject()
        {
            return project;
        }
    }


    class Project
    {
        public string Name { get; set; }

        public void Demo()
        {
            Console.WriteLine($"-------Project Name is--{Name} -------");
        }
    }

    public class MainProgram
    {
        public static void Main()
        {
            GameFactory gamefactory = new GameFactory();

            Programmer clientprogrammer = new ClientProgrammer();

            Programmer serverprogrammer = new ServerProgrammer();

            gamefactory.Develop(clientprogrammer);

            gamefactory.Develop(serverprogrammer);

            Project ClientProject = clientprogrammer.GetProject();

            ClientProject.Demo();

            Project ServerProject = serverprogrammer.GetProject();

            ServerProject.Demo();
        }
    }
}

参考资料:

https://www.dofactory.com/net/builder-design-pattern


<<:  Windows 安装 PHP IMagick

>>:  自主学习Android_APP开发 #纪录1

[从0到1] C#小乳牛 练成基础程序逻辑 Day 29 - 加速器 中/英打typing games 六大推荐

免扮女装 | 游戏中超越自己 | 手速up up | 6大推荐 ...

【前端效能优化】Lighthouse 检测後将图片转为 webp 格式

原先的网站表现分数只有 74分 更换图片格式後网站表现分数 97分 可以看见最大内容绘制 LCP(L...

DAY2-必先利其器

前言: 看完了Day1的介绍後,大概可以知道接下来30天会用到的语言有:html、php、css、m...

[07] [Flask 快速上手笔记] 06. Cookie and Session

Cookies 要使用 cookies 可以使用 cookies 属性 设定 cookie 透过 s...

JS 30 - 将 JSON 资料应用到统计学!

大家好! 今天我们要实作解析 JSON 资料,并计算资料的变异数。 我们进入今天的主题吧! 公式 母...