在充斥各种==NULL或者!=NULL判断之时,在一定程度上破坏了程序的优雅度。
NULL Object模式就是解决这种问题的。
应用该模式之后,消除了对于NULL的判断。
C++基本代码如下:
Class A
{
Public:
Virtual void Do() = 0;
};
Class NULLObject: public A
{
Public:
Virtual void Do()
{
//Do nothing
}
};
Class ChildA :public A
{
Public:
Virtual void Do()
{
//Do Something
}
}
NULL Object具有和普通对象一样的接口,只是它什么也不做!
在引入多了一层复杂度之后,程序的简洁度提升,美的感觉出现,这种权衡值得考虑。