设计模式之---非虚模式
来源:互联网 发布:java获取本季度第一天 编辑:程序博客网 时间:2024/05/22 00:07
非虚模式的是将调用接口与实际执行函数分离,调用接口不支持继承(没有多态功能),而将实现多态的功能交给具体的保护性执行函数,这样就使得调用接口统一,同时不损失多态的好处。具体做法如下:
/// <summary>
/// 基类
/// </summary>
public class Base
{
/// <summary>
/// 对外公布的接口,注意这里不采用虚方法,主要是为了控制统一调用入口。
/// 相当于真正所调用的方法的代理方法。
/// </summary>
public void DoWork()
{
//这种模式的好处就是你可以在这个方法添加很多附加的行为。
//在很多时候,可以作为增加行为的一种方式.
CoreDoWork();
}
/// <summary>
/// 实际的工作代码方法,虚拟的,而且是保护的,故可以实现多态,而外部不能调用,就使得调用接口保持统一.
/// </summary>
protected virtual void CoreDoWork()
{
Console.WriteLine("Base.DoWork()");
}
}
public class Derived : Base
{
/// <summary>
/// 重写基类方法.
/// </summary>
protected override void CoreDoWork()
{
Console.WriteLine("Derived.DoWork()");
}
}
/// <summary>
/// 调用示例..
/// </summary>
public class EntryPoint
{
static void Main()
{
Base b = new Derived();
b.DoWork();
}
}
这种模式的好处是既可以实现多态,同时还可以在代理方法处增加额外的行为,而且这种行为影响所有的调用。
而虚方法无法实现这种既增加额外的行为又影响所有调用的能力。
这种方式在有些时候可以作为面向方面编程(AOP)的一种实现方式,特别是哪些无中间语言生成的时候.。
- 设计模式之---非虚模式
- 非23种GOF设计模式之简单工厂模式
- 非关语言: 设计模式
- 非关语言: 设计模式
- 非关语言: 设计模式
- 非关语言: 设计模式
- 非关语言: 设计模式
- 非关语言: 设计模式
- 【设计模式】设计模式之适配器模式
- 【设计模式】设计模式之外观模式
- 【设计模式】设计模式之工厂模式
- 设计模式之FlyWeight模式
- 设计模式之command模式
- 设计模式之proxy模式
- 设计模式之Singleton模式
- 设计模式之Builder模式
- 设计模式之观察者模式
- 设计模式之 Command 模式
- Javascript 操作select控件大全(新增、修改、删除、选中、清空、判断存在等)
- 没想到还真的是你啊 umask
- Linux下查找含有某字符串的文件的方法
- Android手机开发:ListView的使用
- 解决ECShop transport.js与jQuery冲突
- 设计模式之---非虚模式
- 自动售货机
- 简单的dp@POJ(3)2533 最长上升子序列
- C++著名程序库的比较和学习经验
- 看了3xian的退役文的一些感受。。。。
- Nutch的安装
- Adjust Chromium display fonts
- 浪潮实习8.9
- Android Layout XML属性