很抱歉,我确信我无法很好地表达自己。它是一个游戏系统:abstract class GameType{ private $score; public __constructor($score) { $this->score = $score; } public abstract function getName(); public function getScore() { return $this->score; }}final class Soccer extends GameType{ public function getName() : { return 'soccer'; }}final class Basketball extends GameType{ public function getName() : { return 'basket ball'; }}final class Hockey extends GameType{ public function getName() : { return 'hockey'; }}这说明了 3 种游戏,每种都可以得分,都有不同的名称(我知道,getName()可以用常量替换,但我们暂时忘记它)现在这似乎很好并且独立于系统,假设它是由框架 A 的团队开发的,并且可以传递到框架 B 开发的另一个系统到目前为止。一个新的要求,如果有分数,请发送电子邮件:abstract class GameType{ private $score; public __constructor($score) { $this->score = $score; } public abstract function getName(); public abstract function notifyIfScored(); public function getScore() { return $this->score; }}final class Soccer extends GameType{ public function getName() : { return 'soccer'; } public abstract function notifyIfScored() { FRAMEWORK1::sendEmail('score 1'); }}final class Basketball extends GameType{ public function getName() : { return 'basket ball'; } public abstract function notifyIfScored() { FRAMEWORK1::sendEmail('score 2'); }}final class Hockey extends GameType{ public function getName() : { return 'hockey'; } public abstract function notifyIfScored() { FRAMEWORK1::sendEmail('score 3'); }}发送电子邮件与 FRAMEWORK1 相关联,但即使我们可以将其作为依赖注入传递到外部,它仍然看起来该类必须做“更多”事情,并且通过这样做,它失去了任何框架的独立性。
- 1 回答
- 0 关注
- 54 浏览
添加回答
举报
0/150
提交
取消