Лучший способ связать объекты в коллекциях для простого приложения библиотеки? - PullRequest
0 голосов
/ 29 октября 2009

Я просто настраиваю простое библиотечное приложение, в основном набор «Члены» и набор «Книг». Моя идея состояла в том, чтобы реализовать оба из них как NSMutableArrays, чтобы я мог легко добавлять и удалять объекты. Я хотел бы спросить, каков наилучший способ реализовать связь между «членом» и «книгой», когда они вынимают книгу из библиотеки?

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

EDIT

Могу ли я просто спросить, правильно ли было бы создать объект «Библиотека» в качестве объекта верхнего уровня, который содержит коллекции «Книга» и «Член». Я просто думал об этом, так как в противном случае они должны были бы быть созданы в main (), который кажется немного не объектно ориентированным.

большое спасибо за любую помощь / информацию.

* 1013 Гэри *

1 Ответ

2 голосов
/ 29 октября 2009

Дайте каждому объекту-члену свойство изменяемой коллекции (либо массива, либо набора по вашему выбору), содержащее книги участника. Также присвойте каждому объекту Book свойство, не являющееся владельцем, идентифицирующее участника, у которого оно получено (если кто-либо; nil, если никто).

Вам не нужно удалять книгу из массива всех книг, если библиотека не продает, не раздает или не теряет книгу.

Могу ли я просто спросить, правильно ли было бы создать объект «Библиотека» в качестве объекта верхнего уровня, который содержит коллекции «Книга» и «Член».

Да.

Вы захотите решить, является ли это объектом контроллера или объектом модели. Если это объект модели, вам нужно будет создать контроллер для владения библиотекой (и окном библиотеки), и вы представите библиотеку в AppleScript. Если это контроллер, это объект, которому принадлежит окно библиотеки (а также книги и элементы), и вы не будете открывать его в AppleScript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...