以设计俄罗斯方块为例.
需要有界面设计和游戏逻辑两部分
界面设计的部分包括动画的变化,方块行的消除.图形的变化
而逻辑的设计包括 方块的移动(判允),判断,堆积.等等
显而易见,界面和逻辑是两部分,不应都写在窗体类中,这也就是说我们单一的类只有单一职责.
如果我们因为改多项需求同时更改了一个类,也就是说该类负责的多项职责,那么这就是不合适的.这样的耦合会导致脆弱的设计.
问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。
解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责P2功能。这样,当修改类T1时,不会使职责P2发生故障风险;同理,当修改T2时,也不会使职责P1发生故障风险。
模块化的程序设计,都需要单一职责原则.