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

    我们来看一下简单工厂设计模式,在这里我就拿控制台应用做演示了,来做一个加减乘除的操作.

    在这个项目中我们共需要 操作类(Operaction),工厂类(factory),加法类(Add),调用(Program),调用就在Program中调用了。

    创建好控制台程序后我们来创建一个操作类(Operaction),代码如下

    public class Operaction
        {
            public int Num1 { get; set; }
            public int Num2 { get; set; }
    
            
            public virtual int GetResult()
            {
                return 0;
            }
    
        }

    定义了两个int类型的属性一个是 Num1和Num2,然后又定了一个虚方法,方法就是用来做计算的,因为我们不知道它要执行那个操作想要什么结果,所以我们来定义虚方法,让其他的类去实现方法。

    然后我们创建加法类(Add),代码如下

    public class Add:Operaction
        {
           
            public override int GetResult()
            {
                int result = 0;
                result = Num1 + Num2;
                return result;
            }
        }

    Add类继承了Operaction,那就拥有了Operaction的方法和属性,我们只需要override重写GetResult方法即可,然后执行加法操作,至于怎么写代码,就看自己了

    然后我们创建工厂类

    public static class Factory
        {
            public static Operaction Open(string opac)
            {
                Operaction o = null;
                switch (opac)
                {
                    case "+":
                        o=new Add();
                        break;
                    default:
                        break;
                }
    
                return o;
            }
        }

    为了方便调用我们把它改成static静态的类,方法也是静态的方法。注意这里:

    public static Operaction Open(string opac)

    我们返回的是一个对象 操作类(Operaction),既然要返回Operaction,那就要先new一个Operaction,但是我们不知道它要进行一个什么操作,所以先new一个空的,参数传过来一个字符串,然后使用switch进行判断,如果是 “+” 就new一个Add的类,Add类中重写了计算方法(GetResult),所以这执行的就是加法计算,因为Add这个类已经继承了Operaction所以是可以这么做的,里式替换原则,也不多说了。然后我们return返回;工厂类就完成了。

    然后就是调用了,在Program中调用

            static void Main(string[] args)
            {
                Operaction op = Factory.Open("+");
                op.Num1 = 5;
                op.Num2 = 3;
                Console.WriteLine(op.GetResult());
            }

    Main方法中有看这段代码:

    Operaction op = Factory.Open("+");

    在调用的时候传入参数 “+” 在工厂模式的switch中就会判断,new一个Add(加法类)给你,加法类中又重写了计算的操作,最终结果也就出来了。

    同样,减法,乘法,除法也是如此。 工厂模式也可以做很多的事情,在这里只是举了一个小例子而已

  • 相关阅读:
    安全探讨之用Win32汇编写双进程守护
    LightTPD 1.4.12
    mysql4存在mysql5没有的性能成绩
    gcolor2-拾色器
    solaris 中挂载usb移动硬盘
    Browsershots:测试你的 Web 企图
    MythTV 0.20
    XorgEdit:xorg.conf 编纂器
    pci168c,1c无线网卡如何在64位Solaris系统上运用
    Fedora8中批改磁盘卷标
  • 原文地址:https://www.cnblogs.com/NiuZiXiao/p/10223499.html
Copyright © 2011-2022 走看看