先简单说说开闭原则的定义:
|
开闭原则(Open-Closed Principle, OCP):一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。 |
上周我实现一个功能扩展时就违反了这条原则,具体是我通过修改部队行军的类型达到自己的扩展需求。在打包前审代码的时候,一老人发现,立马把我添加的代码屏蔽,然后再让我改。
在功能扩展的需求中,策划并没有要求增加新的行军类型,而是细分某种行军类型要有特殊的表现。于是我实现的时候也按照这思路,对行军类型细分。但是我没有考虑到原有的逻辑是正常的,而我细分后的却不一定,需要我和策划把细分的行军类型重新测试。我和策划都没关注这点,只关注了这次修改要求增加的特殊表现,结果是细分的行军类型果然有问题。
修改方案也很简单:不对行军类型进行细分(不修改原有的行军类型),而是用一个额外的新字段标记需要特殊表现的类型,在需要特殊处理的时候判断是否有该新字段即可。
本文讲述了作者在功能扩展时违反开闭原则的经历。作者通过修改部队行军类型实现扩展,未考虑原有逻辑,导致细分类型出现问题。后提出修改方案,即不修改原有行军类型,用新字段标记特殊类型,在特殊处理时进行判断。
923

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



