Я пытаюсь реализовать концепцию программирования компонентов при написании своей игры iOS.Objective-C и компонентное программирование
В книге «Компонент программного обеспечения: Beyond объектно-ориентированное программирование» Клеменс Szyperski, он упоминает тактику:
(не цитата) Start с классом Duck, который добавляет компонент Quack. Класс Quack реализует интерфейс на любом объекте, который его вызывает, интерфейс указывает метод, в котором используется Quacks quack()
С этой настройкой Duck не имеет никакой ссылки или осведомленности о Quack, за исключением случаев, когда она создана и никогда не используется в Утке после этого. Другие объекты могут вызывать duckObject.quack() и достигать Quack, но только знают о объекте Duck.
До сих пор я пытался реализовать это без успеха. Желательно, чтобы утка не нуждалась в большем количестве кода, чем инстанцирование, а остальные - в классе Quack. Это можно сделать в Objective-C (для iOS?), Или мне лучше оставить COP для других языков?
Я понимаю, что вы уже приняли ответ, но посмотрели ли вы на категории Objective-C? Вы можете реализовать категорию Quack в Duck, которая добавляет метод '-quack'. Класс Утки не должен был бы знать об этом. (Для чего это стоит, я с KillerX, что это звучит как ужасный дизайн анти-шаблона.) –