我经常发现自己在创建以“Factory”为后缀的类。这些类往往只负责创建特定的类或一组相关的类。然而,我一直觉得这可能不是最佳实践,还有更好的方法。我认为这不是最佳实践的原因之一是,尽管我使用了“factory”后缀,但我实际上并没有使用工厂设计模式。
假设我有一个类Vehicle,它包含两个变量make和model。我希望我的问题能够创建许多这样的Vehicle对象,所以我希望将代码封装在单个类中来创建这些对象。我可能会创建下面的类。
public class VehicleFactory
{
public Vehicle CreateVehicle(string make, str
/**
* A JavaScript value representing a signed integer.
*/
class V8_EXPORT Integer : public Number {
public:
static Local<Integer> New(Isolate* isolate, int32_t value);
static Local<Integer> NewFromUnsigned(Isolate* isolate, uint32_t value);
int6
可能重复:
如何将param传递给泛型构造器?
public class Payment<T> where T: HostFunctionContext, IClaimPayment, new()
{
public IResultEntity Display(MyUser user, string claim, int? cert)
{
**HostFunctionContext func = new T(user) as HostFunctionContext;** <~doesn't compile
我经常发现自己创建了以“Factory”作为后缀的类。这些类往往只负责创建特定的类或一组相关的类。然而,我一直觉得这可能不是最好的实践,而且有更好的方法来解决这个问题。我认为这不是最佳实践的原因之一是,尽管我使用的是“工厂”后缀,但实际上我并没有使用工厂的设计模式。
假设我有一个类vehicle,它包含两个变量make和model。我希望我的问题能够创建许多这样的vehicle对象,所以我想封装代码来在一个类中创建这些对象。我可以创建下面的类。
public class VehicleFactory
{
public Vehicle CreateVehicle(string make,
我正在使用Angular 2从头开始创建一个自动完成功能。我需要监听不同的按键,并根据按下的按键执行不同的操作。我必须听到四种类型的击键:回车、向下箭头、向上箭头,以及触发新的自动补全查询的按键(例如:退格键、字母数字键、delete,可以更改输入文本框中字符串的值)。
我的项目负责人希望我实现一个用于创建击键处理程序的设计模式,并推荐使用工厂模式(很可能是作为设计模式的实践)。因此,理论工厂将为我的四种击键类型中的每一种创建不同的对象。侦听器返回一个字符串,我可以用它来确定按下了哪个键(例如"ArrowUp“、"ArrowDown”、" enter ")。因此
我有一个类,我希望能够像这样使用:
obj = MyClass(arg1, arg2)
if (obj is None):
# tell user to try again
else:
# give user options for continuing
创建对象的基本算法(在__init__和/或__new__中,我不确定)应该如下所示:
retrieve database record from arg1 and arg2 search criteria
if a record is returned
setup instance variables
else
我正在读一篇关于工厂方法模式的文章。
我可以理解何时有一个工厂类,即StoreFactory#getStore(),根据某个运行时或其他状态返回Store实现。
但是,从阅读(例如)来看,似乎有一种通用的模式,人们创建一个抽象的工厂类,其他工厂类扩展到这个抽象工厂类:
public abstract class AbstractFactory {
public abstract Store getStore(int store);
}
public class StoreFactoryA extends AbstractFactory {
public Store
我想创建一个名为A的对象,其属性如下。
public class A {
private Object data;
public A(Object data) {
this.data = data;
}
}
如何设置这个对象,以便如果两个实例对数据具有相同的值,那么它们引用相同的实例?我正在创建一个非常昂贵的对象,不想重复。
有一个密码:
class MyClass : IMyInterface
{
public void DoSomething()
{
using(var dependency = new Dependency())
{
// some code
}
// some code
}
public void DoSomething2()
{
using(var dependency = new Dependency())
{
我正在编写一个新的应用程序,使用Guice进行依赖注入,并使用Guava的先决条件进行属性验证。
我使用工厂模式来创建基于外部输入的bean。问题是,,验证输入的首选方法是什么?(在可维护性、清晰度等方面)
让我们假设这些类:
Bean.java
public interface Bean {
public Object getFoo();
}
BeanImpl.java
public class BeanImpl implements Bean {
private final Object foo;
public BeanImpl(Object param)
在重构一段要求我在nodejs中使用对象工厂模式的代码时,我遇到了一个案例。因此,我在示例代码中尝试了这种模式,并提出了一些疑问。
factoryTest.js
var createFactory = require("./createFactory").createObjects();
var helloWorldObject = createFactory.helloWorld("userOne");
console.log("helloWorldObject: "+JSON.stringify(helloWorldObject));
v
目前,我有3个类,其中大多数变量是相同的。所有变量都有getter和setter。我需要根据提供的数据类型变量创建类的对象,并在十多个方法中传递该对象。让我们举个例子。
我们有三类ClassA,ClassB,ClassC。如果我们通过了2017年,,那么我需要ClassA的对象。如果我们通过了2016年,那么我需要ClassB的对象,而对于其他年份,我们需要ClassC的对象。
然后,我们需要在all 10方法中传递该对象。让我们从两种方法中分一杯羹。
公共空method1(int,int,对象的classA/ b /C)。
公共空method2(int,int,对象的classA/ b /
是否有任何方法将某种自定义元数据(任何对象)附加到java中的线程?例如,如果我使用ThreadPoolExecutor运行两个线程,并将一些线程附加到每个元数据中,并将这些线程传递给某个处理器,该处理器将能够读取这些元数据?
据我从线程源代码中看到的,我唯一能做的就是设置线程名。
多亏了AlexR,我解决了这个问题。记住启动这个线程的线程的Id。
public class StarterThreadAwareThread extends Thread {
private volatile long startedThreadId;
public StarterThread
我有以下方法来创建一个新的Connection对象。它将打开一个串行端口。请注意,当端口不存在时,它将失败。
class Connection
def initialize(port)
begin
@serial = SerialPort.new(port, 9600, 8, 1, SerialPort::NONE)
rescue
exit(1)
end
end
def send_command
@serial.write "Something"
end
end
我为这个方法写了一个RSpec规范,到目前为止
在Dart中,工厂构造函数需要来自编码器的更多逻辑,但与const构造函数没有太大区别,除非它们允许“非最终”实例变量。
他们对const建设者的优点是什么?
谢谢你们所有人。
编辑的
下面是Seth博客“Dart”中工厂构造函数的用法--试图理解“工厂”构造函数的价值。
class Symbol {
final String name;
static Map<String, Symbol> _cache = new Map<String, Symbol>();
factory Symbol(String name) {
if (_cache.co