单一责任(SRP),就是一个类而言,应该仅有一个引起它变化的原因。(
不知道是不是有机会用QT 作一个俄罗斯方块的游戏)逻辑和界面分离是一个很重要的原则。
如果一个类承担的责任过多,就等于把这些责任耦合在一个,一个指责的变化可能会削弱或者抑制这个类完成其他责任的能力,这种耦合会导致脆弱的设计,当变化发生时,设计会遭到意想不到的破坏。适当的使用映射?抽象?来减少对于界面的依赖。
软件设计真正要作的许多内容,就是发现指责并把那些指责相互分离,其实要去判断是否分离类也不难,如果你能够想到多于一个动机去改变一个类,那么这个类就具有多余一个的指责。
开放封闭原则:就是说软件实体(类,模块,函数等等),应该是可以扩展的,但是不可以修改。
OPEN FOR EXTENSION, AND CLOSED FOR MODIFICATION。
怎样的设计才能面对需求的改变却可以保持相对的稳定,从而使得系统可以在第一个版本以后不断的推出新的版本。
无论模块是多么的封闭,都存在一些无法对之封闭的变化,既然不可能完全的封闭,实际人员必须对于他设计的模块应该对哪种变化封闭做选择。他必须猜测出最可能发生的变化种类,然后构造抽象来隔离变化。
面对需求,对于程序的改动是通过增加新的代码进行的,而不是修改现有的代码。
开放封闭原则是面向对象的核心。开发人员应该对于程序中呈现的频繁的变化那部分做出抽象,然而,对于应用程序中的每个部分可以的进行抽象同样不是一个好主意。
拒绝不成熟的抽象和抽象本身一样的重要。 原文链接:https://www.f2er.com/javaschema/287962.html