首页
学习
活动
专区
圈层
工具
发布

工厂?
EN

Software Engineering用户
提问于 2015-11-27 12:50:11
回答 3查看 12.9K关注 0票数 4

我有实现MyFactory接口的具体工厂类。我想得到基于参数的具体工厂对象。怎么做?

一种方法是创建工厂FoF工厂,而FoF将是参数化工厂。

还有什么更优雅的方法吗?

这纯粹是智力锻炼,我在我的项目中没有遇到任何问题。

EN

回答 3

Software Engineering用户

发布于 2015-11-27 15:43:47

实际上,当使用抽象工厂模式时,在程序的某个位置必须作出决定,将实例化哪个具体的工厂类。这样做的方法通常是一个工厂法。如果你能清楚地区分这两个术语,那就不会那么令人困惑了。

票数 6
EN

Software Engineering用户

发布于 2015-11-27 13:42:29

是的,你会有工厂。关键是这个类或方法应该位于最顶层的库/应用程序中。只有应用程序中可能最小的部分才知道这个FoF。在应用程序的主循环执行之前执行的应用程序的启动程序中,它很可能是一个简单的方法。

如果您想为这个FoF创建接口,那么这将表明您的创建方案可能会使用重新设计。

编辑:我们似乎需要澄清我所说的工厂(实际上是抽象工厂)的含义,但我不认为“工厂”是模式。抽象工厂模式是一种解决方案,在这种情况下,某些代码需要创建一个实例,但是代码本身没有足够的信息来决定要创建哪个实例。这就是为什么客户端公开一个抽象,而拥有创建该实例的信息的人就会意识到这个抽象。

如果你想谈论设计,你必须总是告诉我们如何使用它,谁有什么信息。

票数 4
EN

Software Engineering用户

发布于 2015-11-27 13:32:04

一个单一的BikeFactory应该能够生产不同的自行车-所以用户选择红色哈雷与泰迪熊的车把。简单来说,BikeFactory需要两个参数::createBike--自行车类型和选项(红色油漆和车把装饰)。

然后,您的BikeFactory创建一个哈雷,并将这些选项注入到哈雷的实例中。

你不需要一个特定的哈雷工厂-哈雷的建造与苏苏基斯/洪达斯/桑切泽斯相同。

票数 2
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/303706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档