发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 云架构 框架 开发教程 SOA 大数据 扩展性 并发编程 EDA 分布式 函数编程

请教工厂方法的问题。

    
2002-10-09 14:27
赞助商链接

我看了天极网http://www.yesky.com/20011128/207301_2.shtml里工厂方法的例子,对其有点疑问,工厂方法确实能够产生很多实例,但这些实例的很多特性都被淹没了,如何使用这些实例呢?

apple为什么要实现FruitIF和PlantIF两个接口?
Fruit和Veggie不都是Plant的一个种类吗?
我认为这样做较妥当
interface PlantIF{
void grow();
void harvest();
void plant();
}
interface FruitIF extends PlantIF{}
interface VeggieIF extends PlantIF{
void pesticideDust();
}
但这样做的结果是用工厂方法产生的apple和tomato只有PlantIF的特征,如何获得tomato.pesticideDust()??

2002-10-09 14:35

还有结合抽象工厂来说
Gardener就是它的抽象工厂?
FruitGardener、VeggieGardener是它的工厂方法??

2002-10-09 22:16

那个例子从我个人来说,我认为很复杂,容易令人误解。
我一直认为讲解设计模式的例子一定要具备两个特点;
1.例子本身不能具有专业背景,否则读者理解例子时还需要了解专业背景。
2.例子也不能举一些太常识的东西,比如蔬菜 水果,平时接触中没有那么多复杂的概念,你一定在其中搞个什么工厂模式来,一般人都要范疑惑:平常我没想这么复杂阿,而且熟悉的东西各人理解可能不一样。
上面你那样理解我觉得也可以。

工厂方法很简单,经常和classLoad使用,抽象工厂一般系统不容易碰到,所以甭费劲了解他们到底差别有多大。

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系管理员 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com