2010-04-23 5 views
1

(Это не интерфейс: я просто опустил тело методов)Что назвать этим классом?

class _ { 
    protected $_data = array(); 

    function __construct($data); 

    function set($name, $value); 

    function get($name); 

    function __set($name, $value); 
    function __get($name); //aliases for their respective non-magic methods. 

    # and some other generic methods 
} 

По сути, это класс, который обеспечивает магический объектно-ориентированного слой многоразового доступа к некоторым данным. Я рассмотрел DataLayer, DataObject и некоторые другие; Я хотел бы услышать некоторые предложения от кого-то, кто более терминологически подкован.

+9

Это самый общий класс, который я когда-либо видел. –

+3

Это почти как StdClass. –

+1

@ Крис Клоберданц: Это ваше предложение? – webbiedave

ответ

1

В Мадженто есть такой класс. Ну, в нем много чего, но философия такая же: добавьте магический метод к остальным вашим классам через наследование. Они назвали его Varien_Object, Varien - имя компании.

У меня также есть что-то подобное в пользовательской структуре, которую я помогал строить. Это называется Базой.

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

6

Как насчет Dave;)

серьезно, что о DataAccess

+0

+1 для 'Dave', -1 для' DataAccess' – salathe

+0

Дейв звучит хорошо. – moo

+6

Сообщите людям, что это аббревиатура для перечислимого значения доступа к данным. Они просто могут в это поверить! – webbiedave

1

Вы могли бы назвать его AccessLayer.

2

Не зная, как используется класс и какие данные он предназначен для обертывания, его трудно назвать. «Обертывание некоторых данных в магическом ООП» является настолько общим, что значимое имя класса сложно.

Если это для сидения между контроллером и базой данных, вы можете назвать это ActiveRecord.

Если это действительно для обеспечения синтаксического сахара ООП до array(), вы можете просто использовать встроенный StdClass.

Если это не так, если только цель класса состоит в том, чтобы обернуть массив, у меня возникнет соблазн назвать его ArrayWrapper.

1

Это действительно напоминает KeyPairValue, и если вы хотите сделать его более специализированным в определении того, как Get найдет его записи, скажем, используя функцию Hash(), то это Hashtable.

  • класс KeyPairValue
  • класс Hashtable

Теперь вопрос: почему? Большинство SDK предложили бы такие структуры данных?

Попытайтесь использовать существующие структуры, а не повторно изобретать их.

Смежные вопросы