为什么要使用工厂模式

问题描述 投票:0回答:2

我正在尝试理解工厂方法设计模式,并且遇到了多个与我脑海中的问题类似的问题,但我的问题仍然没有得到解答。

this是我在问题中提到的文章

在上面文章提到的例子中,为什么我们需要一个

HtmlDialog
WindowsDialog
的具体工厂,并在 main 方法中选择
Dialog
的实现之一,而不是直接从可用
Button
HtmlButton
    

design-patterns factory-method
2个回答
0
投票

这篇文章通过将按钮称为“产品”来稍微混淆了这一点。

WindowsButton

对话框可以呈现它想要的任何内容,并且代码仍然有效。它可以渲染任意数量的按钮、复选框、文本区域、铃声和口哨,并且代码仍然有效。到底要渲染的对话框是隐藏的,因此对话框的设计可以更改,并且代码仍然有效。


0
投票
为什么我们需要 HtmlDialog 和 WindowsDialog 的具体工厂?

由于
/** * All of the client code should work with factories and products through * abstract interfaces. This way it does not care which factory it works * with and what kind of product it returns. */ static void runBusinessLogic() { dialog.renderWindow(); }

HtmlDialog
类必须覆盖
WindowsDialog
() 方法创建特定的按钮对象 对自己来说很特别。您必须为以下对象创建一个 AWT/Swing
createButton
Button
和用于
WindowsDialog
类的 HTML <
Button
>。
对于第二个问题,在 main 方法中您通常选择
具体工厂取决于配置值。你必须开始
由于 

HtmlDialog

班级是家长/创造者,因此从顶部进行选择 按钮。

    

© www.soinside.com 2019 - 2024. All rights reserved.