设计模式学习总结(一)简单工厂模式
简单工厂模式不是23中设计模式中的一种,但它是我最早接触的一种设计模式!
一、示例展示:
通过学习及总结,以下是我做的一个简单工厂模式的示例:
1. 客户端调用工厂类角色(GetCarBrand)并传入客户需要的产品:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
static void Main(string[] args) { Console.WriteLine("Please input the brand of the car that you want!"); string brand = Console.ReadLine(); Car car = GetCarBrand(brand); car.Run(); Console.ReadLine(); }
2. 工厂类角色(GetCarBrand)根据传入的参数,开始生成对应的具体产品类(Concrete Product):
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
//Factory class role(工厂类角色) public static Car GetCarBrand(string brand) { Car car = null; switch(brand) { case "Buick": car = new Buick(); break; case "Cadillac": car = new Cadillac(); break; case "Chevrolet": car = new Chevrolet(); break; } return car; }
3. 具体产品类(Concrete Product)调用已经实现的接口中的抽象方法Run()并输出结果:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
//Abstract Product role(抽象产品角色) public abstract class Car { public abstract void Run(); } //Concrete product(具体产品角色) public class Buick : Car { public override void Run() { Console.WriteLine("I am buick!"); } } public class Cadillac : Car { public override void Run() { Console.WriteLine("I am cardillac!"); } } public class Chevrolet : Car { public override void Run() { Console.WriteLine("I am chevrolet!"); } }
二、简单工厂模式设计理念:
工厂方法根据传入的参数,生成以抽象类角色为返回类型的具体类对象;
三、角色及关系:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步