工廠方法模式:spa
/// <summary> /// 雷鋒 /// </summary> public class LeiFeng { public void Wash() { Console.WriteLine("洗衣"); } public void Sweep() { Console.WriteLine("掃地"); } } /// <summary> /// 大學生 /// </summary> public class Undergraduate : LeiFeng { } /// <summary> /// 社區志願者 /// </summary> public class CommunityVolunteer : LeiFeng { } /// <summary> /// 雷鋒工廠 /// </summary> interface IFactory { LeiFeng CreateLeiFeng(); } /// <summary> /// 大學生雷鋒工廠 /// </summary> public class UndergraduateFactory : IFactory { public LeiFeng CreateLeiFeng() { return new Undergraduate(); } } /// <summary> /// 社區志願者雷鋒工廠 /// </summary> public class CommunityVolunteerFactory : IFactory { public LeiFeng CreateLeiFeng() { return new CommunityVolunteer(); } }
客戶端調用code
IFactory factory = new UndergraduateFactory(); LeiFeng leifeng = factory.CreateLeiFeng(); leifeng.Sweep(); leifeng.Wash(); factory = new CommunityVolunteerFactory(); leifeng = factory.CreateLeiFeng(); leifeng.Sweep(); leifeng.Wash();
結果對象