工厂方法(Factory )

总述:
在工厂方法中,工厂类成了抽象类其实际的创建工作将由其具体子类子类来完成。
工厂方法的用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中去,强调的是“单个对象”的变化。
在软件系统中,经常面临着“某个对象”的创建工作,由于需求的变化,这个对象的具体实现经常面临着剧烈的变化,但是它却拥有比较稳定的接口。
如何应对这种变化?提供一种封装机制来隔离出“这个易变对象”的变化,从而保持系统中“其他依赖该对象的对象”不随着需求的改变而改变。
意图:定义一个用户创建对象的接口,让子类决定实例化哪一个类。
工厂方法模式使一个类的实例化延迟到其子类。

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication18
{
    class Program
    {
        static void Main(string[] args)
        {
        }
    }


public interface ICar 
{ 
     void run(); 
} 

public class BMWCar : ICar 
{ 
     public void run() 
     { 
         Console.WriteLine("BMWCar run"); 
     } 
} 

public class BenzCar : ICar 
{ 
     public void run() 
     { 
         Console.WriteLine("BenzCar run"); 
     } 
} 
public abstract class Driver 
{ 
     public abstract ICar DriverCar(); 
} 

public class BMWDriver : Driver 
{ 
     public override ICar   DriverCar() 
     { 
         return new BMWCar(); 
     } 

} 
public class BenzDriver : Driver 
{ 
     public   override ICar DriverCar() 
     { 
         return new BenzCar(); 
     } 
} 
}

 

posted @ 2014-07-09 09:26  欢呼雀跃  阅读(170)  评论(0)    收藏  举报