【发布时间】:2016-08-19 00:07:23
【问题描述】:
我有一个类,它有一个 Initialize 方法,它在数据库中创建一堆表。这个类看起来像这样:
public class MyClass
{
private bool initialized = false;
public void Initialize()
{
if(!initialized)
{
//Install Database tables
initialized = true;
}
}
public void DoSomething()
{
//Some code which depends on the database tables being created
}
public void DoSomethingElse()
{
//Some other code which depends on the database tables being created
}
}
DoSomething 和 DoSomethingElse 这两个方法需要确保在继续之前已调用 Initialize 方法,因为它们依赖于数据库中的表。我有两个选择:
在类的构造函数中调用 Initialize 方法 - 这似乎不是一个好主意,因为构造函数现在应该调用方法,这些方法很重要并且可能导致异常。
在这两个方法中的每一个中调用 Initialize 方法 - 这似乎也不是一个很好的解决方案,尤其是在有多个方法时。
有没有一种设计模式可以更优雅地解决这个问题?
【问题讨论】:
标签: java c# oop design-patterns