C#设计模式:实例演示简单工厂模式应用与原理

2 下载量 68 浏览量 更新于2024-08-29 收藏 114KB PDF 举报
简单工厂模式是一种软件设计模式,它在C#编程中常用于解耦对象创建和类依赖,从而降低代码的复杂性和提高灵活性。简单工厂模式的核心思想是将对象的创建过程封装在一个独立的类或方法中,而不是直接在客户端代码中通过"new"关键字硬编码创建对象。这种模式遵循面向对象原则中的“封装改变”,即当需求变化导致对象结构改变时,只需修改工厂类而不影响客户端。 在现实生活中,简单工厂可以类比为餐馆,它根据顾客的需求(如菜品类型)决定生产(烹饪)哪种食物。在C#代码示例中,`Customer`类扮演着“客户”的角色,以前没有工厂时,每个菜品的制作都要在`Cook`方法中直接实现。例如,如果想要西红柿炒蛋,客户需要手动调用`Cook`并传入相应的菜品类型。 引入简单工厂模式后,例如定义一个`FoodFactory`类: ```csharp public class FoodFactory { // 封装了创建不同菜品的方法 public static Food CreateFood(string type) { if (type.Equals("西红柿炒蛋")) return new TomatoScrambledEggs(); else if (type.Equals("土豆肉丝")) return new ShreddedPorkWithPotatoes(); // 更多菜品的逻辑可以添加在这里 throw new ArgumentException($"未知的菜品类型: {type}"); } } public class Customer { public static Food Cook(string type) { return FoodFactory.CreateFood(type); } } ``` 现在,客户端只需调用`FoodFactory.CreateFood`方法,传入菜品类型,工厂内部负责根据类型返回相应的`Food`对象,降低了`Customer`类对具体菜品实现的依赖。这种方式使得当菜品需求变化时,只需修改`FoodFactory`而不必修改`Customer`,提高了代码的可维护性。 总结起来,简单工厂模式在C#设计中扮演着控制对象创建的角色,通过解耦客户端和具体对象的创建过程,使设计更加灵活,适应性更强。这是面向对象设计中一种实用且重要的策略,有助于减少代码的复杂性和提高软件的扩展性。