【发布时间】:2018-10-15 09:45:06
【问题描述】:
关于开闭原则,我有些不明白。假设你已经完成了这段代码:
public abstract class Player
{
public string Name { get; set; }
public int Level { get; set; }
}
public sealed class Fighter : Player { /* ... */ }
public sealed class Warrior : Player { /* ... */ }
这段代码运行良好,您已经完成了第一个版本,一切正常。
现在您想添加一些功能,例如玩家可以装备戒指。开闭原则说对扩展开放,对修改开放。如果我不应该修改这些类,我如何实现我的玩家可以拥有戒指这一事实?
【问题讨论】:
-
你可以考虑阅读this nice answer。
-
这是一个扩展而不是修改,您正在扩展播放器类以拥有一个默认情况下将由每个孩子继承的环。例如,修改是添加一个抽象方法,该方法应由每个子实现,这是一个修改。
标签: c# solid-principles open-closed-principle