【发布时间】:2012-07-29 02:16:43
【问题描述】:
我有一个抽象的数据提供者,有很多方法。
在实现中,每个方法都需要进行一些检查,然后才能继续执行其余的方法。这个检查总是一样的。
所以现在在每种方法中,我都会这样做:
public override string Method1 {
if(myCheck()) throw new Exception(...);
...Rest of my method1...
}
public override string Method2 {
if(myCheck()) throw new Exception(...);
...Rest of my method2...
}
public override string Method3 {
if(myCheck()) throw new Exception(...);
...Rest of my method3...
}
你明白了..
有没有更简单/更好/更短的方法来做到这一点?
【问题讨论】:
-
这里的内容被称为“面向方面的编程”。搜索该术语可能会产生一些有用的信息。
-
谢谢,我去看看
-
一个小的改进是包括在 myCheck 中抛出异常,因此每个方法只需要调用 myCheck() - 你可以摆脱 if 语句并抛出。
-
出于兴趣什么叫你的方法?你的基类中有什么东西?
-
@ChrisMoutray,其代码来自业务层调用此数据层中的方法。 “基础类”是什么意思?
标签: c# aop implementation