很抱歉,我確信我無法很好地表達自己。它是一個游戲系統: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 關注
- 80 瀏覽
添加回答
舉報
0/150
提交
取消