通过我们的面向对象的知识我们知道一个父类可以标识一个子类的对象,这也是理解这里的关键,我们在程序里将会用一个抽象类的对象表示一个子类的对象。如上图所示,我们现在有我们有一个iabstractfactoy的接口,该接口的职责就是实现创建对象的工作,我们再有两个具体的工厂concretefactory1和concretefactory2他们就是具体实现接口中的函数他们实现了这两个方法,当然在具体的应用中可能没有两个具体的工厂,在gof的书中说过在很多情况下我们并没有工厂的抽象接口,大多数情况都是直接使用具体工厂来实现的,在这里我想力图完整的描述书中的结构所以实现也是一样的。好了下面就是我的代码,这段代码显示了我们是怎么在c#中实现abstractfactory的。我用一个winform来测试结构。
实现代码:
using system;
namespace abstractfactory_me
{
public interface iabstractfactory{
iabstractproducta createproducta();
iabstractproductb createproductb();
}