Java工厂模式---之简单工厂模式,工厂模式,抽象工厂模式

以下都是个人的理解-----

     (一)"简单工厂"与"工厂模式"的区别:主要看工厂是否进行了抽象,接口。换言之就是是否有把工厂中的方法抽象出来,简单工厂方法没有抽象出方法,而工厂方法抽象出了方法。以下是接口形状(Shape)和它的具体类圆(Circle)矩形(Square)之间的继承,ArtTrace是一工厂是一个具体工厂,所以,以下是一个简单工厂的模式。如果把ArtTrace抽象成一个接口或者抽象类以下模式则是工厂模式。

(二)“工厂模式”与“抽象工厂模式”的区别:

 在了解他们的区别之间有必须对两个概念做进一步的认识,那就是“产品族”和“产品等级”他们很容易区别在模式设计到底用那种工厂方法。

      什么是产品族呢?

            产品等级:简单的说就是不同类的产品就叫不同的产品族,比如电脑,苹果,桌子……等就是一个产品族。他们的物理特性和外型都不相同。

      而什么又是产品等级呢?

            产品族:就是同一种东西的不同类型。例如,PC有联想的,IBM,方正……的等等,这些对象就构成一个产品等级。

而抽象工厂模式解决的就是如果产生不同等级,不同产品族的产品(对象)下面是我用JBuilder画出来的UML来方便理解:

图中的结构模仿一个果园,假设果园应该能够出产水果,蔬菜,这时水果和蔬菜就是不同的东西,也即使是前面所说的产品等级;水果和蔬菜分别会有北方的,还会有塑料大棚里面生产的热带水果,蔬菜,这时的分类就是产品等级。而这样的结构就可以用文中提到的抽象工厂模式!

                                                       ----------------------有时间待续

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值