zoukankan      html  css  js  c++  java
  • 设计模式--简单工厂模式

    当今社会高福帅的男生是女的选择的标准,可是不是所有的男生都是如此完美,所以萝卜白菜各有所爱,不同的女生来选择不同的男友时的标准也不尽量相同,怎么样写一个程序来尽量可 能适应多的女生使用呢。
    男生种类很多不可让一次列出来完,也就是平时的需求变化比较大,怎么能更好的适应变化。
     
    所以我们要建立一个造男生的工厂,你只要给我条件我就能给你造出来相应的男生,你只要想要我就给你。
    如下图:
    代码如下:
     1 //Man
     2  abstract public class Man
     3     {
     4         public abstract void Show();
     5     }
     6 //SmartMan
     7  class SmartMan:Man
     8     {
     9         public override void Show()
    10         {
    11            // base.Show();
    12             Console.WriteLine("这是一个帅哥");
    13         }
    14     }
    15 //PoorMan
    16 class PoorMan:Man
    17     {
    18         public override void Show()
    19         {
    20           //  throw new NotImplementedException();
    21             Console.WriteLine("这是一个三无青年,请不要选择");
    22         }
    23     }
    24 //MoneyMan
    25   class MoneyMan:Man
    26     {
    27         public override void Show()
    28         {
    29             //base.Show();
    30             Console.WriteLine("这是一个富豪");
    31         }
    32     }
    33 //HighMan
    34  class HighMan:Man
    35     {
    36         public override void Show()
    37         {
    38             //base.Show();
    39             Console.WriteLine("这是一个高大的男生");
    40         }
    41     }
    42 //ManFactory
    43 class ManFactory
    44     {
    45         public static Man CreateManOperation(string strCondition)
    46         {
    47             Man mTemp = null;
    48             switch (strCondition)
    49             {
    50                 case "high":
    51                     mTemp = new HighMan();
    52                     break;
    53                 case "money":
    54                     mTemp = new MoneyMan();
    55                     break;
    56                 case "smart":
    57                     mTemp = new SmartMan();
    58                     break;
    59                 case "poor":
    60                     mTemp = new PoorMan();
    61                     break;
    62 
    63                 default:
    64                     break;
    65             }
    66             return mTemp;
    67         }
    68     }
    69 //client
    70 class Program
    71     {
    72         static void Main(string[] args)
    73         {
    74             string strCondition = Console.ReadLine();
    75             do
    76             {
    77 
    78                 Man m_man = ManFactory.CreateManOperation(strCondition);
    79                 m_man.Show();
    80                 strCondition = Console.ReadLine();
    81             } while (!string.IsNullOrEmpty(strCondition));
    82 
    83             Console.ReadLine();
    84         }
    85     }

    结果如图:

  • 相关阅读:
    javascript framework js常用框架
    快速排序Quick sort
    归并排序
    Linux中 设置apache,mysql 开机启动
    Linux下设置mysql和tomcat开机启动
    linux命令之ifconfig详细解释
    CentOS网络接口配置文件ifcfg-eth详解
    条件测试操作与流程控制语句
    从键盘或文件中获取标准输入:read命令
    linux yum命令详解
  • 原文地址:https://www.cnblogs.com/ants_double/p/5487664.html
Copyright © 2011-2022 走看看