简单的说,三层架构就是便于维护和扩展。
假设A层调用了B层,B层调用了C层,那么当C层有变化时不应该影响到A层,同时也不应该影响到B层。这有点奇怪,怎么做到C层变化了B层和A层就不受影响呢?
最简单的办法就是抽象!让B层使用一个抽象类,但不实用具体的派生类。然后在C层中创建那个抽象类的派生类。这样当以后有变化时,只需要创建一个新的派生类,而无需修改B层就可以咯。代码思路如下:
B层:
class B
{
CBase _c;
public B(CBase c)
{
this._c=c;
}
}
C层:
public abstract class CBase
{
public abstract void SomeMethod();
}
public class CDerived:CBase
{
public void SomeMethod()
{
}
}
这里B层的CBase仅仅使用了C层的一个CBase抽象类,并没有使用具体的派生类。当以后发生变化时,仅仅在C层从CBase创建一个新的派生类就可以了,B层的B类完全不用修改。
|