factory-method相关内容

Factory方法的命名约定是什么?

简介 MacApp Macintosh应用程序框架[App89]总是声明 将工厂方法定义为Class*的抽象操作 DoMakeClass(),其中Class是Product类。 这句话引出了关于工厂方法设计模式的命名约定的问题。 期望 我希望看到最佳实践或有帮助的示例,它们提供了清晰的工厂方法命名。 因为它可能依赖于一种语言,所以让我们考虑一组最流行的语言:C#、Ja ..
发布时间:2022-04-12 22:29:36 其他开发

在下面的例子中使用抽象工厂而不是工厂方法的真正好处是什么?

在写这个问题之前,我阅读了以下参考资料: 工厂方法与抽象工厂 抽象工厂与工厂方法(范围) 抽象工厂、工厂方法、构建器 工厂、抽象工厂和工厂方法 抽象工厂模式和工厂方法的区别 我看到很多和我一样的人都难以“掌握"抽象工厂和工厂模式之间的具体区别.我不熟悉设计模式,我遇到了这个例子 http://www.oracle.com/technetwork/java/dataaccesso ..
发布时间:2021-12-22 09:05:51 Java开发

建造者设计模式和工厂设计模式有什么区别?

Builder 设计模式和 Factory 设计模式有什么区别? 哪个更有利,为什么? 如果我想测试和比较/对比这些模式,如何将我的发现表示为图表? 解决方案 对于设计模式,通常没有“更有利"的解决方案适用于所有情况.这取决于您需要实施什么. 来自维基百科: Builder 专注于构建一个复杂的对象一步一步.抽象的工厂强调产品家族对象(简单的或复杂的).Builde ..

工厂和抽象工厂设计模式之间的基本区别是什么?

工厂模式和抽象工厂模式的基本区别是什么? 解决方案 使用工厂模式,您可以生成实现的实例(Apple、Banana、Cherry 等)的特定接口——比如,IFruit. 通过抽象工厂模式,您可以为任何人提供一种提供他们自己的工厂的方法.这允许您的仓库成为 IFruitFactory 或 IJuiceFactory,而无需您的仓库了解有关水果或果汁的任何信息. ..

工厂模式.什么时候使用工厂方法?

什么时候在对象中使用工厂方法而不是工厂类是个好主意? 解决方案 我喜欢从我的班级是“人"的角度来思考设计模式,而模式是人们相互交谈的方式. 所以,对我来说,工厂模式就像一个招聘机构.你有一个需要可变数量工人的人.这个人可能知道他们需要从他们雇佣的人那里获得的一些信息,但仅此而已. 因此,当他们需要新员工时,他们会致电招聘机构并告诉他们需要什么.现在,要真正雇用某人,您需要了解很 ..

如何在C++中正确实现工厂方法模式

C++ 中有一件事情让我感到很不舒服很长一段时间,因为老实说我不知道​​该怎么做,尽管这听起来很简单: 如何在 C++ 中正确实现工厂方法? 目标:允许客户端使用工厂方法而不是对象的构造函数实例化某些对象,而不会产生不可接受的后果和性能损失. “工厂方法模式"是指对象内部的静态工厂方法或另一个类中定义的方法,或全局函数.一般只是“将类 X 的正常实例化方式重定向到构造函数以外的任 ..
发布时间:2021-12-22 08:34:51 C/C++开发

抽象工厂和工厂设计模式有什么区别?

我知道有很多关于这两种模式之间差异的帖子,但有一些我找不到. 从我读过的内容来看,我看到工厂方法模式允许您定义如何创建单个具体产品,但对客户端隐藏实现,因为他们将看到通用产品.我的第一个问题是关于抽象工厂.它的作用是否允许您在其中创建具体对象系列(这取决于您使用的具体工厂),而不仅仅是单个具体对象?抽象工厂只返回一个非常大的对象还是很多对象取决于你调用什么方法? 我的最后两个问题是关于 ..

设计模式:工厂 vs 工厂方法 vs 抽象工厂

我正在从一个网站上阅读设计模式 在那里我读到了工厂、工厂方法和抽象工厂,但它们太混乱了,定义不清楚.根据定义 Factory - 在不向客户端公开实例化逻辑的情况下创建对象,并通过公共接口引用新创建的对象.是工厂方法的简化版 Factory Method - 定义一个用于创建对象的接口,但让子类决定实例化哪个类并通过一个公共接口引用新创建的对象. 抽象工厂 - 提供用于创建 ..

什么是静态工厂方法?

什么是“静态工厂"方法? 解决方案 我们避免提供对数据库连接的直接访问,因为它们是资源密集型的.所以我们使用静态工厂方法 getDbConnection 如果我们低于限制,它会创建一个连接.否则,它会尝试提供一个“备用"连接,如果没有连接则失败并抛出异常. 公共类 DbConnection{私有静态最终 int MAX_CONNS = 100;私有静态 int totalConnecti ..
发布时间:2021-11-25 12:24:21 Java开发

什么是静态工厂方法?

什么是“静态工厂"方法? 解决方案 我们避免提供对数据库连接的直接访问,因为它们是资源密集型的.所以我们使用静态工厂方法 getDbConnection 如果我们低于限制,它会创建一个连接.否则,它会尝试提供一个“备用"连接,如果没有连接则失败并抛出异常. 公共类 DbConnection{私有静态最终 int MAX_CONNS = 100;私有静态 int totalConnecti ..
发布时间:2021-11-19 23:03:14 Java开发

SIGNALSEGV(分段错误)矢量外推回方法

我正在使用 linux (WSL) 制作一个 shell.出于某种未知的原因,当我将一个结构体指针(我创建的)推回到一个向量中时,它会调用 SIGNALSEGV. 这些是有问题的代码的主要类, class TimeoutCommand : public BuiltInCommand {民众:布尔背景;std::string 行;int pid;int 持续时间;TimeoutCommand ..

与简单工厂相比,使用工厂方法模式有什么优势?

我正在阅读有关工厂方法模式和简单工厂的信息.事实证明,简单的工厂就足够了,而且我看不到工厂方法模式的用例.请阅读此链接, https://www.binpress.com/factory-design-pattern/,我会问我的问题. 1)在简单工厂中,它说这很不好,因为它违反了打开/关闭原则.我知道,但是在工厂方法模式中,它仍然违反了打开/关闭的原则. if('car'== $ to ..
发布时间:2021-05-06 20:26:30 PHP

工厂方法模式的适用性

我对工厂方法模式感到困惑. 以下代码来自"https://www.oodesign.com/factory-method-pattern.html" 公共接口产品{}公共抽象类创建者{公共无效anOperation(){产品product = factoryMethod();}受保护的抽象产品factoryMethod();}公共类ConcreteProduct实现产品{}公共类Concr ..
发布时间:2021-04-30 19:25:53 其他开发

抽象工厂与工厂方法:组成与继承?

我已经阅读了很多有关Abstract Factory和Factory方法之间的区别的文章,但是有一个我无法理解的问题。 一个区别两者之间是抽象工厂 模式,一个类通过组合将对象实例化 的责任委托给另一个对象,而工厂方法模式 使用继承并依靠子类来处理所需的对象 实例化 也许我知道为什么Abstract Factory模式使用合成和委托来创建对象,但是我不明白为什么Factory方法 ..
发布时间:2020-10-21 01:40:16 其他开发

在生成器模式中,方法`buildpart()`是工厂方法吗?

在构建器设计模式中, 方法buildpart()是工厂方法吗? (为了进行比较,抽象工厂是工厂方法的集合.) 为什么(不是)工厂方法?为了澄清起见,您还可以提供工厂方法的定义吗? Gamma等人的《设计模式》中的buildpart()的示例是: void StandardMazeBuilder::BuildMaze () { _currentMaze = new Maz ..
发布时间:2020-06-14 19:09:38 其他开发

Factory方法模式是Template方法模式的特例吗?

GOF讨论“工厂方法"模式的框架.框架需要对象,但是对象的实现取决于应用程序,因此创建了创建对象的抽象方法.同样,由于需要返回类型,因此定义了所需对象的接口,它定义了对象所需的api.实际对象由子类创建(具体应用程序).这是一种创造模式. 对于Template模式,唯一的变化是封装类不知道某些行为的实现,因此将其抽象为一个方法,使用它,但将实现留给子类.这是行为模式. 两者之间唯一的区 ..

模板类的工厂方法

我在尝试建立工厂功能时遇到了一个问题, 给定一个ID和一个类型,它将返回正确的(模板化)子类. 这是要解决的问题: id()值在建立连接后立即通过网络发送,并向接收者指定如何对字节序列进行编码.接收者预先知道它期望的类型T,但是直到它获得该值之前,它不知道该类型T如何在线路上编码.它还指定返回时如何整理返回值(某种类型的U,其中U可能与T的类型相同或不同).通常使用此代码,即有多个使用 ..
发布时间:2020-06-14 19:09:29 C/C++开发

如何在春季使用自动装配的bean创建简单工厂模式?

我有一个具有4种非常相似方法的控制器,该控制器在远程服务器上调用API以对不同类型的用户执行不同的操作.这些API调用之间的变化只是端点和一些参数. 因此,这4种方法都用非常相似的代码调用了服务:它们从服务器获取了令牌,设置了参数,返回了API的响应.由于稍后将添加更多操作,因此我决定使用使用Factory Method模式创建ServiceFactory并在服务上使用Template模式以 ..
发布时间:2020-06-14 19:09:26 Java开发