单一职责原则,单从字面上理解,很容易犯迷糊,从不同维度看单一职责是存在很大争议的,这里的“职责”被定义为“变化的原因”,那么翻译过来就是单一变化原因,这样单从字面上也很好理解了,要确定一个类是否符合单一职责原则,只需要检查有多少个理由能够引起它变化,只有一个理由会引起它变化的话,那就符合单一职责。这一条原则不仅仅适合类,也适用于方法。
开放-封闭原则,说的是面向扩展开发,面向修改封闭,乍看起来这两个特性好像是冲突的,为了使这两个相反特性共存,抽象是重中之重。我们可以使用抽象类来编写符合开放封闭原则的代码,如果有新的扩展,那么将其继承抽象类就可以了。但是并不是对所有变化都能进行封闭,因此封闭是要讲究策略的,即程序员需要去甄别对哪些变化封闭。使用抽象可以获得显示的封闭,还有“数据驱动”的方法也可以编写符合开放-封闭原则的代码。
网友评论