我有一个要求,我必须在调用该类中的任何静态方法之前先调用一些初始化方法。
现在的问题是,每当我向该类添加新的静态方法时,我都忘了调用该初始化方法,我想知道是否有任何设计模式可以解决此问题。我希望在从类中调用静态方法时始终调用初始化方法。
最佳答案
对于此问题,AOP可能是一个过大的杀伤力。您可能想尝试的是将每个静态方法委托给另一个类,然后将初始化代码添加到该类的构造函数中。就像是:
class StaticClass {
public static void m1 () {
new Worker().m1();
}
public static void m2 () {
new Worker().m2();
}
}
class Worker {
public Worker() {
intialize();
}
public void m1() {
// Real m1 work
}
public void m2() {
// Real m2 work
}
}
这至少解决了忘记放入初始化代码的调用的问题。
也就是说,这看起来像:https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem
您能退一步告诉我们您为什么需要这个吗?
关于c# - 设计模式,以便始终在调用静态方法之前调用静态init方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5698229/