【设计模式】简单工厂模式(C#)
1、概述
工厂模式总结三个要点:
- 不想直接new这个类的对象,防止这个类改变的时候在new的地方到处去改,麻烦且容易遗漏;
- 这个类的对象构建过程非常复杂,不想在代码的各个地方将这么复杂的构建过程反复书写;
- 这个类的对象在构建过程中依赖了很多其他的类,而你无法在调用的地方提供。
2、结构
简单工厂包含如下角色:
- 抽象产品 :定义了产品的规范,描述了产品的主要特性和功能。
- 具体产品 :实现或者继承抽象产品的子类
- 具体工厂 :提供了创建产品的方法,调用者通过该方法来获取产品。
3、背景
需求:设计一个披萨点餐系统。
设计一个披萨类(Pizza),并定义其两个子类(奶酪披萨【CheessPizza】和希腊披萨【GreekPizza】);再设计一个披萨店类(PizzaStore),披萨店具有点披萨的功能。
首先,我们先实现上述的需求。
//1.抽象产品
public abstract class Pizza
{
//名字
public string Name;
//准备原材料
public abstract void Prepare();
public void Bake()
{
Console.WriteLine($"{this.Name} bake");
}
public void Cut()
{
Console.WriteLine($"{this.Name} cut");
}

本文介绍了简单工厂模式在设计一个披萨点餐系统中的应用,通过抽象产品(Pizza)、具体产品(如CheessPizza、GreekPizza)和具体工厂(PizzaSimpleFactory)的角色,实现了披萨类的创建与解耦。然而,当增加新产品时,仍需修改工厂类,违反了开闭原则。简单工厂模式虽封装了对象创建,但其缺点在于扩展时需改动工厂类。

2092

被折叠的 条评论
为什么被折叠?



