@quitting
Junior php

Как правильно спроектировать замену классов?

У меня есть несколько классов, допустим два:

class Keyboard {
	
    public function add(string $key):void
    {
        //реализация
    }
	
	
	//другие методы
}

class Message {
	
    public function send():bool
    {
        //реализация
    }
	
	//другие методы
}

Я уже их юзаю в проекте. И тут вдруг мне нужно заменять эти классы другими, точнее не сам класс, а его реализацию. Посоветуйте готовые решения.

Пс: изначально я хотел замутить класс прослойку и унаследовать его, но встал вопрос как реализовать быструю подмену.
  • Вопрос задан
  • 134 просмотра
Решения вопроса 1
Fragster
@Fragster
помогло? отметь решением!
Заменить классы на интерфейсы, передавать в "обработчик" экземпляр класса, реализующего интерфейс параметром. https://habr.com/ru/post/350068/
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@rPman
В php, если ты не проводишь контроль типов используемых экземпляров объектов, методы вызываются по имени, как есть, т.е. достаточно чтобы класс экземпляра объекта имел методы с теми же именами что у тебя используются, и совместимым порядком параметров, и все будет работать.

Ну а если ты везде тип контролируешь, используй паттерн интерфейс-реализация, указывая в качестве типов - интерфейс.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы