Ekk*_*Ekk 10
这取决于你想要达到的目标.例如,你有一个Television类,它有3种方法TurnOn,TurnOff和Draw.
您只需要客户端TurnOn或TurnOff电视,但只有其子类应该知道Draw屏幕上的内容和方式.所以,Television看起来或多或少会像下面一样.
public abstract class Television
{
public abstract void TurnOn();
public abstract void TurnOff();
protected abstract void Draw();
}
Run Code Online (Sandbox Code Playgroud)
然后每个公司都有自己的实施.
public sealed class MyTelevision
: Television
{
public override void TurnOn()
{
Console.WriteLine("Turn on my tv");
}
public override void TurnOff()
{
Console.WriteLine("Turn off my tv");
}
protected override void Draw()
{
// code here.
}
}
Run Code Online (Sandbox Code Playgroud)
客户可以TurnOn或TurnOff电视,但Draw屏幕上不能有任何东西.
出于同样的原因,你想要一个对象中的公共方法:)你只是不知道这个阶段的特定实现.它在具有非常高抽象级别的类中很常见,例如中间件.
编辑:这是100%合法.您只需要确保它是您希望在每个具体实现中向世界其他地方公开的功能.入口点方法(例如:start,execute,parse ..)通常属于这种类型.

| 归档时间: |
|
| 查看次数: |
13815 次 |
| 最近记录: |