案例分析:
一个支持在屏幕上绘图的类View。一个视图只有在进入焦点状态后时才可以设定合适的特定绘图状态,因而只有成为“焦点”之后才可以进行绘图。View类强制其子类遵循这个规则。我们用Display模板方法来解决这个问题。View定义两个具体方法,SetFocus和ResetFocus,分别设定和清除绘图状态。 View的Dodisplay钩子操作实施真正的绘图功能。
意图:
定义一个操作中算法的框架,将一些步骤延迟到其子类中。这里就是将绘图的具体工作,延迟到View类的派生类中。
结构图:
程序代码:
#include <iostream.h>
class View
{
public:
};
class FlashView:public View
{
public:
};
class PhotoShopView:public View
{
public:
};
int main()
{
}
运行结果:
获得焦点
实现falsh绘图
失去焦点
获得焦点
实现photoshop绘图
失去焦点
Press any key to continue