zoukankan      html  css  js  c++  java
  • 【C#设计模式——创建型模式】简单工场模式

      进入码农行列也有一年半载了,仍然感觉自己混混沌沌,无所事事,无所作为,,,想想都下气,下气归下气,仍要奋起潜行,像愤怒的小鸟一边又一遍的冲向猪头也好,像蜗牛一样往前蹭也罢,总之要有蚂蚁啃骨头的精神!!!!      

      简单工场模式根据提供给他的数据,返回几个可能类中的一个实例。通常它返回的类都有一个共同的父类和共同的方法,但是每个方法执行的任务不同,而且根据不同的数据进行优化

    实例演示

      目标:利用简单工场模式(不属于23个GoF模式)对输入的英文名字(只考虑一个单词的名字)进行处理(获取姓氏和名字)

      说明:老外写名字的习惯是名字在前姓氏在后,后者姓氏在前了加个逗号(Ming Wang或者Wang,Ming)

      先创建一个父类

     public class Name
        {
            protected string frname, lname;
            public string GetFirst()
            {
                return frname;
            }
            public string GetLast()
            {
                return lname;
            }
        }

      继承自父类的,创建两个子类FirstFirst和LastFirst,实现名字的处理,代码就不贴了,需要的最后给链接。

      关键的是工厂类NameFactory,在整个过程中起到决策点的作用代码如下:

     public class NameFactory 
        {
            public Name GetName(string name)
            {
                int i = name.IndexOf(',');
                if (i > 0)
                {
                    return new LastFirst(name);
                }
                else
                {
                    return new FirstFirst(name);
                }
            }
        }

      到这,这个示例就完成了。运行效果截图

      

    重点:工厂类有一个决策点,能根据需要返回派生子类的实例

    示例下载



     

  • 相关阅读:
    Android工具
    Android工具-DDMS
    Android ADB
    Windows FILETIME 与UNIX时间的转换
    <转>git,github在windows上的搭建
    国内的 Faas 云服务 -- Serverless 收集
    APICloud终于承认侵权并向DCloud道歉了(2019-11-26),知识产权!
    微信及钉钉等小程序开发的可视化工具
    C#的建造者设计模式(Builder),及Aspnet Core的源代码
    AspNet Core 3 的通用主机学习
  • 原文地址:https://www.cnblogs.com/hpuCode/p/3831425.html
Copyright © 2011-2022 走看看