您的位置:首页 > 其它

抽象工厂模式

2009-05-18 19:10 190 查看
抽象工厂模式
首先这是抽象工厂模式的设计思想,各个项目之间的依赖关系
(图片丢失)
根据我的学习,介绍我对抽象工厂的理解:
首先:是一个抽象的产品,也就是说结合现实来说就是一个想法或一个在头脑中的一个产品但是还没有成型的,为实现的。所以我们把他就写成一个抽象的类,因为他需要别人来继承所以给里面的方法写成接口型的。
Public interface ICar
{
String Color() ; //未实现的方法
String Price() ;
}
在这里面如果你还有别的产品可以再新建其他的类。
抽象产品有了,然后我们就来找人来实现这个想法(方法)那我么就来创建一个实体类一个项目根据上面的图,我们不难看出他一来抽象产品,来继承接口实现接口。加入我们现在只生产小型汽车,定义成car
Public class car : iCar
{
Public string Carname()
{
Return “ I’m a butif car !”;
} //当然你还可以给这个方法加上他的一些跟多的方法体。
}
好了现在实体产品有了,就相当啊于有了足够的资金了,现在我们可以来建设工厂了,当然现在建的只是我们的总部(抽象工厂)在工厂项目中我们新建一个抽象的类,现在我们的总部(抽象工厂)就建设好了。当然光有总部(抽象工厂)是不能完成生产商品的,我们在这个项目中建设几个实体工厂(相当于分部)而实体工厂是来继承抽象工厂的,然后生产实际的产品,也就是说把之前写好的实体类重新实例化一下(new 一下)那我们假设有两个分部(实体工厂)下面我们将抽象工厂里面得代码写下来看看

Abctract public class factory()
{
Abctract public 接口1 productA();
Abctract public 接口2 productB();

Public static factory chockfactory(string fa)
{
String name=null;
Switch (fa)
{
Case “name1”:
Name = new 实体工厂1();
Break;
Case “name2”:
Name = new 实体工厂2();
Breake;
}

}
}(因为惆怅工厂是抽象的,所以我们要对他里面的方法定义成静态的,这样可以在外面调用这个方法)
好了现在抽象工厂我们写完了,我们要实现实体工厂了。实体工厂引用的是接口所以他返回的是实现接口的对象。里面方法是对接口的重写
Public override 接口1 productA ()
{
Return new 产品类1();
}
这样我们工厂的框架基本上就完成了,但是可以看出还有一些东西还没有完成比如,他是如何来实现就是如何给别人看的呢,我的产品是怎么样的呢,下面我们就来写一个业务逻辑的项目将业务统计一下。
Public string get(string name)
{
Return factory.chockfactory(name1).productA().color();
}这个事通过抽象工厂里的选择工厂类型的创建产品的类型中的属性方法。
业务也分析好了,接下来我们就开始把这些东西都显示出来了。那要想实现就应该实例化一下业务逻辑中的方法
textBox1.text = new BLL().get(里面是条件).ToString();
这样我们的抽象工厂的简单版就完成了,这只是一个思路,我们可以再这个的基础上扩展,灵活的运用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: