C#:抽象工厂模式

using System;
using System.Collections.Generic;
using System.Text;

namespace Example0526
{
    public abstract class Road
    {
        public abstract void Start();
    }

    public abstract class AbstractRoadFactory
    {
        public abstract Road CreatRoad();
    }

    /*
     * ------------------客户区运行 ------------------
     */

    public class TestRoadFactory
    {
        public void Testing()
        {
            RoadFactory rf = new RoadFactory();

            Road r = rf.CreatRoad();

            r.Start();

        }
    }

    /*
     * ------------------客户区代码 ------------------
     */

    //public class RoadManage
    //{
    //    AbstractRoadFactory abstractRoadFactory;
    //    public RoadManage(AbstractRoadFactory abstractRoadFactory)
    //    {
    //        this.abstractRoadFactory = abstractRoadFactory;
    //    }

    //    public Road GetRoad()
    //    {
    //        return this.abstractRoadFactory.CreatRoad();
    //    }
    //}

    /*
     * 变化点
     */
    public class RoadFactory : AbstractRoadFactory
    {

        public override Road CreatRoad()
        {
            return new Road1();
        }
    }


    public class Road1 : Road
    {
        public void Start1()
        {
        }

        public override void Start()
        {

        }
    }

    public class Road2 : Road
    {
        public void Start2()
        {

        }

        public override void Start()
        {

        }
    }
}

posted @ 2010-05-26 11:16  江水  阅读(219)  评论(0编辑  收藏  举报
友情链接:『MY 163 Bolg』  『BlueIdea』  『YoBo』