Пример #1
0
 public People(string document, string name, string email, PeopleType type)
 {
     Document = document;
     Name     = name;
     Email    = email;
     Type     = type;
 }
Пример #2
0
        public IPeople GetPeople(PeopleType type)
        {
            switch (type)
            {
            case PeopleType.Rural:
            {
                return(new Villagers());
            }

            case PeopleType.Urban:
            {
                return(new CityPeople());
            }

            case PeopleType.Cave:
            {
                return(new CavePeople());
            }

            default:
            {
                throw new NotSupportedException();
            }
            }
        }
Пример #3
0
 /// <summary>
 /// 不同的国家,不同的问候方式怎么实现
 /// 加参数,加判断
 /// 增加国家,修改方法
 /// 职责不单一
 /// </summary>
 /// <param name="name"></param>
 /// <param name="type"></param>
 public static void Greeting(string name, PeopleType type)//传的是值,根据值来决定行为
 {
     if (type == PeopleType.chinese)
     {
         Console.WriteLine("{0},早上好", name);
     }
     else if (type == PeopleType.English)
     {
         Console.WriteLine("{0},English", name);
     }
     else
     {
         throw new Exception("");
     }
 }
Пример #4
0
        public IPeople GetPeople(PeopleType type)
        {
            IPeople people = null;

            switch (type)
            {
            case PeopleType.RURAL: people = new Villagers(); break;

            case PeopleType.URBAN: people = new CityPeople(); break;

            default: break;
            }

            return(people);
        }
Пример #5
0
        //加参数判断---执行分支逻辑
        //好处:公共逻辑方便
        //坏处:任意分支变化,经常改动代码
        public void SayHiSwitch(string name, PeopleType peopleType)
        {
            switch (peopleType)
            {
            case PeopleType.E:
                Console.WriteLine(name + "good morning");
                break;

            case PeopleType.C:
                Console.WriteLine(name + "早上好");
                break;

            default:
                break;
            }
        }
Пример #6
0
        public IPeople GetPeople(PeopleType type)
        {
            IPeople people = null;

            switch (type)
            {
            case PeopleType.Rural:
                people = new Villagers();
                break;

            case PeopleType.Urban:
                people = new CityPeople();
                break;
            }
            return(people);
        }
Пример #7
0
 public IPeople GetPeople(PeopleType type)
 {
     IPeople people = null;
     switch (type)
     {
         case PeopleType.RURAL:
             people = new Villagers();
             break;
         case PeopleType.URBAN:
             people = new CityPeople();
             break;
         default:
             break;
     }
     return people;
 }
Пример #8
0
 public IPeople createPerson(PeopleType pt)
 {
     IPeople person = null;
     switch (pt)
     {
         case PeopleType.Bandit:
             person = new Bandits();
             break;
         case PeopleType.Villager:
             person = new Villagers();
             break;
         case PeopleType.CityFolk:
             person = new CityFolks();
             break;
     }
     return person;
 }
Пример #9
0
    public IPeople getPeople(PeopleType type)
    {
        IPeople person = null;

        switch (type)
        {
        case PeopleType.COUNTRY:
            people = new CountryPeople();
            break;

        case PeopleType.CITY:
            people = new CityPeople();
            break;

        default:
            break;
        }
        return(people);
    }
Пример #10
0
    public List <People> GetInvitePeopleListByType(PeopleType type)
    {
        if (type == PeopleType.Firend)
        {
            return(GetFriendPeopleList());
        }

        if (type == PeopleType.Clan)
        {
            return(GetClanPeopleList());
        }

        if (type == PeopleType.Nearby)
        {
            return(GetNearbyPeopleList());
        }

        Engine.Utility.Log.Error("没有取到数据!!!");
        return(null);
    }
Пример #11
0
        /// <summary>
        /// SayMorning方法,适应不同的人和不同的打招呼的方法
        /// </summary>
        /// <param name="name"></param>
        /// <param name="peopleType"></param>
        public void SayMorning(string name, PeopleType peopleType)
        {
            switch (peopleType)
            {
            case PeopleType.Chiness:
            {
                Console.WriteLine($"早上好,{name}");
            }
            break;

            case PeopleType.America:
            {
                Console.WriteLine($"Good Morning,{name}");
            }
            break;

            default:
                throw new Exception("类型出错!");
            }
        }
Пример #12
0
        /// <summary>
        /// 中国人---晚上好
        /// 美国人---good evening
        /// ...
        ///
        /// 假如要增加一个国家的人Malaysia,就得修改方法,增加一个分支
        /// 任意分支变化 都得修改方法
        /// 经常改动  很不稳定  难以维护
        ///
        /// 增加公共逻辑方便
        ///
        /// 为不同的人,进行不同的问候
        /// 传递个变量---判断一下---执行对应的逻辑
        /// 能不能直接点,直接传递逻辑呗
        /// 逻辑就是方法---委托
        /// </summary>
        /// <param name="name"></param>
        public void SayHi(string name, PeopleType peopleType)
        {
            Console.WriteLine("prepare SayHi..");
            switch (peopleType)
            {
            case PeopleType.Chinese:
                Console.WriteLine($"{name},晚上好~");
                break;

            case PeopleType.American:
                Console.WriteLine($"{name},good evening~");
                break;

            case PeopleType.Malaysia:
                Console.WriteLine($"{name},*^%*^%^&%^%~");
                break;

            default:    //遇到不认识的枚举,说明调用有问题,那就不要隐藏,直接异常
                throw new Exception("wrong peopleType");
            }
        }
Пример #13
0
        //中国人:晚上好
        //美国人:good evening!
        //通过枚举判断,执行各自的业务逻辑
        //如果新增一个国家的人,那么就修改这个方法
        //如果业务升级,方法需要频繁的修改,方法很不稳定
        //传参数peopleType 是判断之后执行逻辑,传参数是为了执行逻辑,参数不同逻辑又不一样,既然如此,能不能把这个逻辑直接传过来呢?逻辑是什么?逻辑不就是方法吗?如果把一个方法包裹之后传递呢? 委托

        public void SayHi(string name, PeopleType peopleType)
        {
            Console.WriteLine("招手");
            switch (peopleType)
            {
            case PeopleType.Chinese:
                Console.WriteLine($"{name}:晚上好!");
                break;

            case PeopleType.American:
                Console.WriteLine($"{name}:good evening!");
                break;

            case PeopleType.Japanese:
                Console.WriteLine($"{name}:#@%¥%……%%…!");
                break;

            default:
                throw new Exception("枚举不存在!");
            }
        }
 public static IPeople GetPeople(PeopleType type)
 {