Ваш лучший друг по развязке.
_00 / Концепция
Представьте, что вы строите мост. Этот шаблон направлен на то, чтобы разбить ваш связанный код, а затем использовать способ, похожий на инъекцию, для составления вашего «моста».
_01 / Ключевые роли
Абстракция и Реализатор. Абстракция ничего не делает сама по себе. Вместо этого он вызывает метод разработчика. Одна абстракция может иметь несколько реализаторов.
// abstraction class BasketballPlayer { constructor(trainAPI, scoreAPI) { this.trainAPI = trainAPI this.scoreAPI = scoreAPI } train() { this.trainAPI.execute() } score() { this.scoreAPI.execute() } } // implementor class TrainShoot extends TrainAPI() { execute() { ... } } class ScoreDunk extends ScoreAPI() { execute() { ... } } // client const trainShoot = new TrainShoot() const scoreDunk = new ScoreDunk() const playerA = new BasketballPlayer(trainShoot, scoreDunk)
_02 / Компромиссы
🟢 Развязка и расширяемость.
🟢 Очень хорошо следуйте правилам ООП.
🔴 Больше кодов, трудно управлять.