您的位置:首页 > 其它

模板方法模式 - Design Patterns 学习笔记 (7)

2008-10-22 13:31 253 查看
有这么一种情况,有很多类会有一些相似的逻辑,但又不完全一样,只有一些微小的差别,为了这些微小的差别,很多时候我们会一拍脑袋,把这些逻辑不厌其烦的写了一遍又一遍.
重复 = 易错 + 难于变化
为了解决这个问题,我们可以充分利用多态的特性,将这些微小的变化延迟到子类.
每个子类只要实现这些小变化就可以了.

抽象类,封装不变的内容:
public abstract class Person
{
public abstract string Name
{
get;
}
public void Introduce()
{
Console.WriteLine("My name is "+Name);
}
}
子类,封装微小的变化
public class Nyzhl:Person
{
public override string Name
{
get
{
return "nyzhl";
}
}
}
测试类
public class Test
{
static void Main()
{
Person nyzhl = new Nyzhl();
nyzhl.Introduce();
}
}
结果:My name is nyzhl

很简单吧,让我想起了前些天写的 数据表实体对象类(http://blog.csdn.net/nyzhl/archive/2008/10/14/3075612.aspx)
各个类都有相似的数据库操作,我当时的做法是把变化以受保护构造函数的形式,让子类传递给父类构造函数.
和模板方法模式相比,可能这样的做法稍显笨拙,但似乎也不是特别差O(∩_∩)O哈哈~
等等我再用模板方法模式重构一下,由于代码太长,就不贴上来啦

,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: