C#面向对象设计模式第五讲:Factory Method 工厂方法(创建型模式)
2011-12-19 17:27
399 查看
(根据MSDN Webcast相关课程整理)
耦合关系直接决定软件面对变化时的行为。 紧耦合时,当一个模块变化时,相关模块都要随之更改;依赖关系复杂
松耦合时,模块更容易被替换或更改,而其他相关模块可以保持不变。依赖关系简单(小圆点表示接口)
不要局限于某种设计模式采用的固定方法,只要能有效解决这种模式要解决的问题,那这种方法就属于这种设计模式。 对于采用何种设计模式,绝不是一开始就能确定的。而是随着我们对软件框架的越来越深入的了解,慢慢发现应对需求变化时现有代码会遇到一些问题,而逐步优化采用何种设计模式。稳定的部分是不需要运用设计模式的,而不要褴用设计模式。 软件设计时,一定要找到问题的不变部分和常变部分,并在两者之间建立稳定的接口。 工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。 GoF:定义一个创建对象的接口,让子类决定实现哪一个类,从而使得类的实例化延迟到了子类中。
看一下下面这个例子: 在汽车测试软件项目中,我们需要测试各种品牌的车辆。因此,汽车的品牌是在不断变化的,而测试逻辑是基本不变的。我们把具体汽车品牌和测试逻辑分开,中间采用抽象类到定义接口。
不同的品牌汽车由不同的工厂来产生(实例化),调用的时候只需要指定具体的工厂就可以啦。
《完》
耦合关系直接决定软件面对变化时的行为。 紧耦合时,当一个模块变化时,相关模块都要随之更改;依赖关系复杂
松耦合时,模块更容易被替换或更改,而其他相关模块可以保持不变。依赖关系简单(小圆点表示接口)
不要局限于某种设计模式采用的固定方法,只要能有效解决这种模式要解决的问题,那这种方法就属于这种设计模式。 对于采用何种设计模式,绝不是一开始就能确定的。而是随着我们对软件框架的越来越深入的了解,慢慢发现应对需求变化时现有代码会遇到一些问题,而逐步优化采用何种设计模式。稳定的部分是不需要运用设计模式的,而不要褴用设计模式。 软件设计时,一定要找到问题的不变部分和常变部分,并在两者之间建立稳定的接口。 工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。 GoF:定义一个创建对象的接口,让子类决定实现哪一个类,从而使得类的实例化延迟到了子类中。
看一下下面这个例子: 在汽车测试软件项目中,我们需要测试各种品牌的车辆。因此,汽车的品牌是在不断变化的,而测试逻辑是基本不变的。我们把具体汽车品牌和测试逻辑分开,中间采用抽象类到定义接口。
不同的品牌汽车由不同的工厂来产生(实例化),调用的时候只需要指定具体的工厂就可以啦。
《完》
相关文章推荐
- C#面向对象设计模式纵横谈 学习笔记5 Factory Method 工厂方法(创建型模式)
- C#面向对象设计模式纵横谈 笔记5 Factory Method 工厂方法(创建型模式)
- 设计模式-创建型模式之 Factory Method(工厂方法)
- C#面向对象设计模式纵横谈(四) --- Factory Method 工厂方法(创建型模式)
- 【设计模式】创建型模式之工厂方法Factory Method
- (第Ⅱ部分 创建型模式篇) 第4章 工厂方法(Factory Method)
- 设计模式-创建型-Factory Method(工厂方法)
- [设计模式-创建型]工厂方法(Factory Method)
- 创建型模式: Factory Method(工厂方法)
- 设计模式学习之工厂方法(Factory Method,创建型模式)(2)
- 【设计模式基础】创建型模式 - 4 - 工厂方法(Factory Method)
- [设计模式-创建型]工厂方法(Factory Method)
- 创建型模式-FactoryMethod ( 工厂方法 )
- 设计模式--创建型-FactoryMethod(工厂方法)
- [设计模式-创建型]工厂方法(Factory Method)
- 创建型模式-工厂方法(factory_method)
- [设计模式学习笔记二][创建型模式][工厂方法(Factory Method)]
- [创建型模式系列]simple factory & factory method 简单工厂类和工厂方法类的概念及区别
- 设计模式-创建型模式:工厂方法FactoryMethod
- 5. Factory Method 工厂方法(创建型模式)