问题标签 [abstract-factory]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ninject-extensions - 使用 Ninject 自定义实例提供者绑定成功,使用工厂方法参数解析
我一直在研究一个类似问题的公认答案,我认为具体工厂返回一个实现,该实现基于工厂方法上的字符串参数匹配具体实现上的命名绑定。
当工厂是抽象工厂并且我希望使用基于 Ninject 约定的绑定时,我正在努力让一个稍微复杂的示例正常工作。考虑以下测试:
这是我尝试使用火把和刀具玩杂耍的地方,因为我曾经在互联网上看到过:
当我尝试分配bicycleBuilderFactory
此错误时,我被刺伤并着火:
是否可以使用方法和自定义提供程序进行绑定,使用工厂方法参数( )以及泛型类型参数( )来解析类型? ToFactory()
"Germany"
IVehicleBiulder<BlueBicycle>, BlueBicycle
这是测试的其余代码,尽可能紧凑和可读。
VehicleBuilder 实现
车辆实施:
ninject - 是否可以将 Ninject Factory Extensions 的 ToFactory 方法与开放泛型一起使用?
我正在构建之前回答的问题,其中ICar
使用Ninject Conventions Extensions和自定义IBindingGenerator绑定实现,并且使用Ninject Factory Extensions 的方法和自定义实例提供程序ICarFactory
绑定接口。 ToFactory()
我正在尝试重构,以便我可以绑定和使用 a IVehicleFactory<T>
,其中T
被限制为ICar
,而不是之前的ICarFactory
. 这样,我可以在泛型类型参数中指定我想要的车辆,而不是在工厂的CreateCar()
方法中传入车辆类型的名称。
是否可以使用该ToFactory()
技术绑定开放的通用接口?
我有一种感觉,我在吠叫错误的树,但是当我通过它的名称指定一个类型时,将类型本身指定为泛型类型参数ICar
似乎是自然的演变......ICar
这是当前失败的测试:
和InvalidCastException
抛出:
和工厂界面:
还有自定义实例提供程序,我什至无法让调试器停止其断点,所以我真的不知道那里发生了什么:
编辑 1 - 更改 IVehicleFactory
签名和自定义实例提供程序
这是我将IVehicleFactory
签名更改为使用通用Create<T>()
方法,并显式绑定Mercedes
到自身。
以及返回第一个泛型类型参数名称的新自定义实例提供程序:
这是新的测试,仍然没有通过:
}
ANinject.ActivationException
被抛出:
我不知道为什么它找不到Mercedes
类,因为我明确地对它进行了自我绑定。你能看出我做错了什么吗?
abstract-factory - 抽象工厂模式和工厂方法的区别,被一个案例搞糊涂了
“工厂方法”和“抽象工厂”的主要区别在于工厂方法是单一方法,而抽象工厂是一个对象。但是,有时我不能说它是什么,例如
你能告诉我这是工厂方法还是抽象工厂?谢谢!
c# - 具有通用功能的方法的工厂模式
我有几个与模式有关的问题,如果你们能提供帮助,那就太好了。
我在下面有一个工厂模式代码的示例(底部的代码)-
我的问题是-
所以如果我想为村民和城市人实现这个通用方法,我可以实现另一种模式吗?
我知道静态不是接口的选项,而只是检查是否有出路。
实际的 C# 控制台参考代码 -
zend-framework2 - 从抽象控制器工厂中访问依赖项
我的应用程序中的大多数控制器都需要能够访问当前登录用户的“帐户”,因此我试图将其注入每个控制器类。这样做的方法似乎是为可以提供所有依赖项的控制器类创建一个抽象工厂。所以我用一个方法创建了工厂类:
但是该$serviceLocator->get('Account');
行给了我错误:
Zend\Mvc\Controller\ControllerManager::get 无法获取或创建 Account 实例
从控制器操作中调用$this->getServiceLocator()->get('Account')
工作正常,那么为什么这个调用不能从控制器工厂内工作呢?
或者有更好的方法来实现这一点吗?
c# - 工厂方法模式和抽象工厂模式
我有一个问题已经在很多方面进行了解释,但仍然没有让我清楚。
- 就抽象工厂模式而言,通过“对象组合”创建对象是什么?
似乎两种模式都使用继承来创建对象。
java - 抽象工厂如何使用委托
抽象工厂和工厂设计模式的区别在于抽象工厂模式使用组合将创建对象的责任委托给另一个类,而工厂设计模式使用继承并依赖派生类或子类来创建对象。
下面是一个抽象工厂的典型示例(http://www.oodesign.com/abstract-factory-pattern.html)有人可以解释一下抽象工厂在哪里使用对象组合吗?
至于我了解子类ConcreteFactory1
并将ConcreteFactory1
对象返回给客户端。它通常作为具有多个产品的工厂类工作。
客户代码可能在哪里
有人可以解释一下抽象工厂中对象组合/委托发生在哪里吗?
c++ - 语法错误:标识符“MercedesFactory”?
我用谷歌搜索了这条错误消息,但找不到与我的案例的关系。
我试着做一个cars abstract factory
:
我有 3 个错误:
线上:
(每行中的每个错误)。
你能帮我找出问题吗?提前致谢。
asp.net - 在回发时从添加到占位符的复合控件中获取数据
我正在尝试基于 CompositeControl 类创建工厂模式。
一切正常。除非我理解它,否则我必须将控件添加回我实际页面上的占位符控件。我四处寻找示例并得到一个几乎可以工作的示例,期望它仅在第一次回发时有效。
我在这里创建了一个示例,我将在这里发布所有代码。
我网页上的代码,这里最重要的是我想在 OnInit 上我试图将控件添加回占位符,我想这可能是我做错了。
这是复合控件类,我不知道我是否必须在这里做一些事情来处理视图状态或如何处理?
文本框控件
复选框控件
design-patterns - 如何提取具体类型的依赖关系?
我有一个要求,用户需要配置他们希望在发生错误时收到警报的方式。他们拥有的选项如下:
1.) 在事件日志中创建一个事件
2.) 将电子邮件发送到从用户界面指定的电子邮件
我目前使用的类使用以下接口
我的接口将由以下 2 个具体类实现
我当前的界面代码如下所示
摘要/问题: 我如何删除正在实例化的具体类型的存在(例如 EventLogNotificationSender 和 EmailerNotificationSender )
注意: EventLogNotificationSender 的具体构造函数不需要参数,而 EmailNotificationSender 的具体构造函数需要一个字符串参数!