Abstract Factory 抽象工厂模式(创建型模式)

来源:互联网 发布:阿里云境外服务器教程 编辑:程序博客网 时间:2024/05/16 09:56
using System;
using System.IO;

public class Road //路的概念
{

}

public class WaterRoad:Road //水路
{

}

public class StoneRoad : Road //石头路
{

}

//类库
public class RoadFactory
{
    public static Road CrateRoad()
    {
        return new WaterRoad();
       // return new StoneRoad();  修改
       //

    }


  
}

//以下客户程序
public class user
{
      public void Main(sting[] args)
    {
        Road r1 = new WaterRoad();
 

        Road r2 = RoadFactory.CrateRoad();
        /*
         * 假定如果我们开始定义了水路,我们r1的定义方式只用一个new,
         *  但是某天我们的路变成石头路了,我们则需要修改:
         * 1.类库要增加一个路,石头路。
         * 2.客户程序还得修改r1的实力化代码。
         * 这样做是不太好的。
         * r2的方法则比较灵活,客户程序是不需要修改的。
         * 只需要修改类库里的RoadFactory.CratrRoad()方法就可以让所有使用水路的客户程序都变成石头路。
         */



    }
}