Я ищу помощь в определении этого шаблона проектирования и изучении «типичного» словаря, который он использует:Общее программирование: когда набор объектов управляется другим объектом, как вы его называете?
Я работаю над проектом на PHP, и я создал тонкий слой ORM, который сохраняет общие объекты в и из базы данных. Существует два класса, которые выполняют работу:
- «my_object» - это в основном контейнер для различных видов данных. После создания этого объекта можно сохранить себя в db.
- «my_object_manager» используется для управления набором объектов, например, если вы хотите получить многие из них и выполнить итерацию через них.
В упрощенном примере, вы могли бы сделать что-то вроде:
$post = new my_object('post');
$post->title = 'foo';
$post->body = 'bar';
$post->author = 'baz';
... и если вы хотели, чтобы загрузить кучу сообщений вы могли бы сделать что-то вроде:
$posts = new my_object_manager('post');
$somePosts = $posts->getBy('author','baz');
foreach($somePosts as $aPost) {
...loop stuff here...
}
Итак, мой вопрос таков: в определении класса для «my_object_manager» мне нужно сохранить свойство, которое идентифицирует, какой тип объекта управляется. Это выглядит примерно так:
class my_object_manager {
protected $theKindOfObjectThatThisManages;
function __construct($whatToManage) {
$this->theKindOfObjectThisManages = $whatToManage;
}
}
Теперь, простите меня, не зная такого рода базовых вещей, но я самоучка и имею довольно ограниченный словарный запас программирования. Я уверен, что такой шаблон дизайна распространен, но для жизни меня я не смог понять, что он назвал.
Я пытаюсь написать код, который другие программисты могут прочитать и понять, так что мой реальный вопрос: читаете ли вы этот код, что вы ожидаете от вызова $ theKindOfObjectThatThisManages? Что называется этим шаблоном проектирования программ и как вы называете этот тип объекта, если вы хотите, чтобы другие программисты знали, что он делает?
Наконец, редактор вопроса выскочил и сказал мне, что этот вопрос выглядит субъективным и, вероятно, будет закрыт. Я надеюсь, что этот вопрос, на самом деле, подходит для переполнения стека, но если нет, то где я могу задать этот вопрос и получить ответ?
Спасибо!
Ах, так ** это **, что такое ActiveRecord. Вы знаете, я слышал об этом/видел его, но я не совсем понял, что это значит, пока я не прочитаю страницу PHPActiveRecord, с которой вы связались. Благодаря! – Andrew