Dam*_*ian 3 design-patterns pseudocode
我总是有问题设计一个类,其中正确的方法调用对于程序员来说是清楚的,并且在数据之前没有执行某些方法的危险,变量是由其他方法设置的.所以我通常使用flags和If语句来保证安全:
class foo {
boolean isInitialised = FALSE;
boolean isSthDone = FALSE;
float importantData;
public void initialise {
...
isInitialised = TRUE;
}
public void doSth1 {
if (isInitialised) {
importantData = 2134234;
} ...
isSthDone = TRUE;
}
public void doSth2 {
if (isInitialised && isSthDone1) {
...
}
}
}
Run Code Online (Sandbox Code Playgroud)
这种设计没有提供任何线索,应该如何使用算法 - 首先应该执行哪种方法,这个问题是否有任何设计模式?
考虑一下这些步骤的独立执行是否真的有意义.如果该类的使用者真的必须按照该顺序执行步骤1,步骤2和步骤3,那么只需将它们折叠成一个公共方法并封装您的类中的步骤.
另一方面,如果消费者在哪种顺序中确实存在选择,那么您就会遇到状态转换问题,并且您需要了解步骤的合法顺序.
您应该在构造函数中进行必要的初始化 - 初始化正是构造函数的用途.根据您使用的语言,它可能如下所示:
Class foo{
public:
foo(){
a = 1;
b = "something";
}
int a;
string b;
}
Run Code Online (Sandbox Code Playgroud)