Java 使用不同的方法和对象设计模式初始化
我是新的设计模式,我不知道我必须在这种情况下应用。 我在一个文件中有一些数据,所以我必须对这些数据建模,然后用这些数据开始一个类 对于文件的读取和建模,我选择应用Dao模式,因此有接口(interface)和his实现(InterfaceImplementation),它们读取文件并返回模型数据(DataModel)。 在我必须用那个模型数据实例化另一个类(Runner)之后,我调用它的一个方法。 这就是我所做的:Java 使用不同的方法和对象设计模式初始化,java,design-patterns,Java,Design Patterns,我是新的设计模式,我不知道我必须在这种情况下应用。 我在一个文件中有一些数据,所以我必须对这些数据建模,然后用这些数据开始一个类 对于文件的读取和建模,我选择应用Dao模式,因此有接口(interface)和his实现(InterfaceImplementation),它们读取文件并返回模型数据(DataModel)。 在我必须用那个模型数据实例化另一个类(Runner)之后,我调用它的一个方法。 这就是我所做的: public class Factory { public void st
public class Factory {
public void start() {
Interface dao = new InterfaceImplementation();
DataModel data = dao.getDataModel();
Runner runner = new Runner(data);
runner.run();
}
}
因此,客户端只调用方法newfactory().start()
我对这个解决方案有些怀疑,我认为这不是一个好的解决方案,也不是一个很好的工厂模式应用
干杯,我希望我已经干净了
public class Factory {
public void start() {
Interface dao = new InterfaceImplementation();
DataModel data = dao.getDataModel();
Runner runner = new Runner(data);
runner.run();
}
}
2备注:
- 工厂创建对象并通常提供该对象的实例。在您的代码中,更像工厂的是: DataModel data=dao.getDataModel()
- 为什么要在每次调用
时重新实例化start()
InterfaceImplementation
DataModel
s,那么一个有用的工厂可以通过示例为客户端创建/检索特定的DataModel
public class DataModelFactory {
private Interface dao = new InterfaceImplementation();
public DataModel GetDataModelXXX() {
DataModel dataModel = dao.getDataModelXXX();
return dataModel ;
}
public DataModel GetDataModelYYY() {
DataModel dataModel = dao.getDataModelYYY();
return dataModel ;
}
}
工厂旨在简化对象的创建。在创建后的工厂中,将返回对象 因此,创建Runner并将其返回给调用方。 在那里,你可以决定下一步如何处理它
为方法指定有意义的名称也很重要。您的
工厂
类实际上不是创建模式的实现。它是模式的实现
您的
工厂
类的目的不仅是简化运行程序
的实例化过程,而且是简化启动运行程序
的整个过程,这使它比工厂更简单
另一方面,命名是编程中最重要的方面之一。选择有意义的域名。我注意到的一点是:在您当前的实现中,您的客户机“有点”与所有其他活动完全分离。但不是以积极的方式 您的客户端代码调用
start()
;然后在内部,很多事情发生了。但该方法甚至没有返回值
我现在想知道:这些会如何对你的系统产生“持久”的影响?是否存在一些潜在的副作用;就像那个跑步者在某处更新某个全局状态单例一样
换句话说:给定您的代码,如果多次调用start()
,会发生什么情况?!或零次
从这个意义上讲,我一点也不清楚这段代码与其他任何东西是如何“关联”的。对我来说,这似乎是一个你应该研究的问题
(是的,我知道我的输入更多的是一个“代码/设计审查”,而不是一个真正的答案;但见鬼,也许这会有帮助)