差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 后一修订版 | 前一修订版 | ||
| csharp:gof23种设计模式:简单工厂模式 [2025/12/22 10:46] – 创建 张叶安 | csharp:gof23种设计模式:简单工厂模式 [2025/12/22 10:51] (当前版本) – [5. 优缺点总结] 张叶安 | ||
|---|---|---|---|
| 行 10: | 行 10: | ||
| **角色划分**: | **角色划分**: | ||
| - | * | + | |
| - | * | + | * |
| - | * | + | * |
| ===== 2. 结构图解 (UML) ===== | ===== 2. 结构图解 (UML) ===== | ||
| 行 66: | 行 66: | ||
| 我们需要做一个简单的计算器,能够进行加法、减法、乘法运算。 | 我们需要做一个简单的计算器,能够进行加法、减法、乘法运算。 | ||
| - | * | + | |
| - | * | + | * |
| - | * | + | * |
| ===== 4. 操作步骤与 C# 代码 ===== | ===== 4. 操作步骤与 C# 代码 ===== | ||
| 行 185: | 行 185: | ||
| ^ 优点 ^ 缺点 ^ | ^ 优点 ^ 缺点 ^ | ||
| - | | * **解耦**:客户端免除了创建对象的责任,只负责“消费”对象。 | * **违背开闭原则 (OCP)**:如果需要增加新的运算(如除法),必须修改工厂类的 `switch-case` 逻辑。 | | + | |解耦:客户端免除了创建对象的责任,只负责“消费”对象。 |违背开闭原则 (OCP):如果需要增加新的运算(如除法),必须修改工厂类的 `switch-case` 逻辑。 | |
| - | | * **代码清晰**:将对象创建的复杂逻辑封装在工厂类中。 | * **工厂类职责过重**:如果产品过多,工厂类逻辑会变得非常复杂,一旦出错可能导致系统崩溃。 | | + | |代码清晰:将对象创建的复杂逻辑封装在工厂类中。 |工厂类职责过重:如果产品过多,工厂类逻辑会变得非常复杂,一旦出错可能导致系统崩溃。 | |