模板方法模式
GOOD:把不变的代码部分都转移到父类中,将可变的代码用virtual留到子类重写。
如果两个类不直接通信,那么这两个类就不应当发生直接的相互作用。如果一个类需要调用另一个类的某个方法的话,可以通过第三个类转发这个调用。
在类的结构设计上,每一个类都应该尽量降低成员的访问权限。
该法则在后面的适配器模式、解释模式等中有强烈的体现。

转载请注明,文章来自:http://blog.youkuaiyun.com/windows_nt
例:
#include<iostream>
#include <vector>
#include <string>
using namespace std;
class AbstractClass
{
public:
void Show()
{
cout<<"我是"<<GetName()<<endl;
}
protected:
virtual string GetName()=0;
};
class Naruto : public AbstractClass
{
protected:
virtual string GetName()
{
return "火影史上最帅的六代目---一鸣惊人naruto";
}
};
class OnePice : public AbstractClass
{
protected:
virtual string GetName()
{
return "我是无恶不做的大海贼---路飞";
}
};
//客户端
int main()
{
Naruto* man = new Naruto();
man->Show();
OnePice* man2 = new OnePice();
man2->Show();
return 0;
}
本文深入探讨了模板方法模式与迪米特法则在面向对象编程中的应用,通过实例展示了如何利用模板方法模式封装不变代码,以及迪米特法则在减少类间耦合中的实践。

被折叠的 条评论
为什么被折叠?



