问题标签 [factory-pattern]
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.
wcf - wcf 和 Factory\plugin 模式
我有一个架构问题要问你:) 在我的新项目中,我正在开发一个 wcf 服务,该服务具有“driverName”字符串输入参数,并且该服务必须为该名称创建一个实现“IDriver 接口”的“driverType”类和执行一个方法。该应用程序将是可扩展的,我想在运行时将其他程序集与其他驱动程序实现放在一起。
我不太了解 wcf,但是在我的脑海中阅读新的 wcf4 时,我想到了以下两种可能的实现:
1)在通用 wcf 中使用“工厂模式”(我的问题是:有一个框架可以用于我的目的吗?)
2)使用许多 wcf,每个驱动程序一个,以及 WCF4 的可发现功能(我的问题是:可发现对我有帮助吗?)
抱歉,我的英语很差,而且我对这类问题没有太多经验。请帮我。
nhibernate - linq 和 nhibernate 是否返回相同类型的集合?
如果我设计我的数据库层以便我可以在 linq-to-sql 或 nhibernate 实现之间交换它,我必须针对接口编写代码。
这意味着 linq 和 nhibernate 之间的返回类型必须相同,即 List 等。
列表类型是否相同?
linq-to-sql - 如何使用带有 linq for sql 的工厂类?
我在我的数据库模型之上有一个模型,并将对象映射到我的存储库中。
但是,显然,我是直接在我的 GetUsers 中“选择新”还是“选择工厂结果”,如下所示。我在运行时收到错误,即 CreateFromDbModel 方法没有转换为 sql (System.NotSupportedException)。
有没有解决的办法?我能以某种方式修复它吗?
想要使用工厂方法的原因是我可能会在其他地方实例化对象并希望将“映射代码”保留在一个地方......
感谢您的任何评论,安德斯
design-patterns - 哪种设计模式与工厂模式相反?
我想知道是否存在与工厂模式相反的模式。例如,当需要删除某个对象时,需要做一些额外的工作,以撤消在工厂对象中执行的配置。
例如,使用 Delete 方法扩展工厂对象似乎是错误的,因为工厂模式是一种严格的创建模式。
更新:我使用工厂的原因是因为需要完成的配置会给不适合的对象引入一些依赖项。将此取消配置放在构造函数中会带来同样的问题。
c# - C# 工厂模式
我正在构建一个已索引多个不同数据源的搜索应用程序。当针对搜索引擎索引执行查询时,每个搜索结果都会指定它来自哪个数据源。我已经建立了一个工厂模式,用于为每种类型的搜索结果显示不同的模板,但我意识到随着越来越多的数据源被搜索引擎索引(即新的必须为每个新数据源创建代码模板)。
我根据 Granville Barnett 在DotNetSlackers.com上的一篇文章为我的工厂创建了以下结构
工厂模式 http://img11.imageshack.us/img11/8382/factoryi.jpg
为了使这个搜索应用程序更易于维护,我的想法是创建一组数据库表,这些表可用于定义我的工厂模式可以引用的各个模板类型,以确定构建哪个模板。我想我需要一个查找表,用于指定要根据搜索结果数据源构建的模板类型。然后我需要有一个表来指定要为该模板类型显示哪些字段。我还需要一个表(或模板表中的其他列),用于定义如何呈现该字段(即超链接、标签、CssClass 等)。
有没有人有这样的模式的例子?请告诉我。谢谢,-罗伯特
php - 我是在使用工厂来促进多态性吗?
我的第一个问题基本上是要求进行代码审查。我即将提供的代码是否使用工厂来促进多态性?它是用 PHP 编写的。以下是基本要求:
- 将长 url 传递给库并返回缩短的 url。除了长 url,传递用户属性以尝试定位用户特定的缩短服务和 API 密钥。
- 允许用户为特定的 URL 缩短器设置 API 密钥。我的代码假设这已经在数据库中设置,并且 Bitly 是唯一支持的服务。
- 如果用户没有 API 密钥和服务集,请使用默认 API 密钥和服务。同样,我的代码假定数据库中的默认设置为 Bitly。
- 如果 url 缩短服务失败,记录失败,但不要抛出异常。图书馆应该默默地失败。我们将使用长 url,而不是使用短 url。
下面是一个调用代码的例子:
以下是课程:
perl - 在对象实例上调用 new 有什么好处?
我正在阅读Programming Perl
,我发现了这个代码片段:
new
使用像这样的构造函数,调用对象实例有什么好处?我想这就是它的用途,对吧?我的猜测是,如果有人想编写这样的构造函数,他将不得不添加更多代码,将第一个对象的属性复制到即将创建的对象。
design-patterns - 抽象工厂问题
我试图理解抽象工厂设计模式。我有很多麻烦。我正在尝试使用以下示例来开发 UML 类图:
汽车设计师可以设计许多不同类型的汽车。汽车可以有两扇门,也可以有四扇门。汽车可以是四轮驱动,也可以是两轮驱动。汽车由不同的零件组成:车轮、车门、发动机、变速箱等。每个零件都有不同的操作:例如变速箱可以有 first_gear()、second_gear()、third_gear()、fourth_gear()、reverse() , 中性的()。
汽车零件(上面列出的)可用于家庭:本田、吉普车、福特等。
使用抽象工厂设计方法,我需要开发一个软件系统,以便该系统可以轻松地将汽车从一个家庭换到另一个家庭。
到目前为止,这是我一直在想的:拥有一个工厂和多个抽象工厂。因此,抽象工厂创建模型,而工厂创建零件......
任何人都可以帮忙吗?谢谢..
c# - 为什么我无法通过 Type.GetType() 找到 app.config 中引用的插件实例的类型?
所以这是交易。我有我的解决方案,其中有几个项目:
- 包装器项目 - 这只是一个控制台应用程序,当前在调试期间代表 Windows 服务。
- 一个工作项目 - 这包含代码的核心。这样我就可以轻松地调试 Windows 服务的代码而不会头疼。
- 插件库项目 - 这包含一个插件工厂,用于新建插件的具体实例。
- 插件项目 - 这包含我的插件的具体实现。
我的包装应用程序包含我的 app.config,我的插件应该直接引用它以进行自我配置。这样,我的包装应用程序除了需要调用适配器工厂来新建插件实例外,不需要知道任何其他信息。
包装项目:
工人项目:
插件库:
插入:
好的,这样就设置好了舞台。当我参考Type.GetType(pluginTypeName)
. MypluginTypeName
被正确地从配置中拉出,但Type.GetType(pluginTypeName)
返回null
. 我已经尝试直接在代码中的同一位置更新我的插件实例:
这工作得很好,并obj.GetType().ToString()
返回与我在app.config
.
谁能告诉我为什么我可以在代码中的那一点新建一个具体对象,但Type.GetType(pluginTypeName)
会失败?