zoukankan      html  css  js  c++  java
  • 建造者模式

    建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

    场景:LOL中玩家可以根据他们电脑的配置,选择不同的峡谷渲染方式。通过不同的设置,游戏会构建不同的峡谷,这种就是采用建造者模式来渲染地图的。高配置的电脑,展示高清的地图,低配的电脑展示低配的地图。

    UML图:

    示例代码:

        public interface IMapBuild
        {
            List<string> Map { get; set; }
            void CreateTree();
            void CreateUser();
            void CreateRiver();
    
            List<string> ReturnMap();
    
        }
        public class HighDeMapBuild:IMapBuild
        {
            public List<string> Map { get; set; }
            public void CreateTree()
            {
                this.Map.Add("高清树木");
            }
    
            public void CreateUser()
            {
                this.Map.Add("高清友方用户");
                this.Map.Add("高清敌方用户");
            }
    
            public void CreateRiver()
            {
                this.Map.Add("高清河流");
            }
    
            public List<string> ReturnMap()
            {
                this.Map=new List<string>();
                CreateTree();
                CreateUser();
                CreateRiver();
                return this.Map;
            }
        }
        public class LowerDeMapBuild:IMapBuild
        {
            public List<string> Map { get; set; }
            public void CreateTree()
            {
                this.Map.Add("低清树木");
            }
    
            public void CreateUser()
            {
                this.Map.Add("低清友方用户");
                this.Map.Add("低清敌方用户");
            }
    
            public void CreateRiver()
            {
                this.Map.Add("低清河流");
            }
    
            public List<string> ReturnMap()
            {
                this.Map = new List<string>();
                //CreateTree();可去去掉
                CreateUser();
                CreateRiver();
                return this.Map;
            }
        }
        public class Director
        {
            public List<string> Constractor(IMapBuild build)
            {
                return build.ReturnMap();
            }
        }
            static void Main(string[] args)
            {
                Director dire1 = new Director();
                var highMap= dire1.Constractor(new HighDeMapBuild());
                var lowerMap = dire1.Constractor(new LowerDeMapBuild());
            }
  • 相关阅读:
    Jmeter 跨脚本入参
    Jmeter 查看结果树显示unicode转中文
    jmeter+ant 接口自动化测试框架
    jmeter jmeter.results.shanhe.me.xsl 模板内容
    Jmeter + ant 接口自动化测试(进阶)
    Linux od命令
    Hadoop初识
    tbn tbc tbr
    ffmpeg之avcodec_open2
    ffmpeg之AVStream
  • 原文地址:https://www.cnblogs.com/chenyishi/p/9109306.html
Copyright © 2011-2022 走看看