2010-04-23 111 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

这就是这是我见过的最通用的课程。 – 2010-04-23 18:29:12

+3

这几乎就像StdClass。 – 2010-04-23 18:31:05

+1

@Chris Kloberdanz:这是你的建议吗? – webbiedave 2010-04-23 18:32:40

回答

1

在Magento中有这样的一个类。好吧,它里面有更多的东西,但哲学是一样的:通过继承为你的其他类添加一些神奇的方法善良。他们将其命名为Varien_Object,Varien是该公司的名称。

我已经在我帮助构建的自定义框架中获得了类似这样的内容。它只是被称为基地。

我想我想说的是......不管你怎么称呼它,它都不会帮助人们理解它的功能,直到他们通过代码。不要太担心,当你完成它将被埋在你的应用程序的深处,只有那些发现它的人会是那种能够很快地完成它相当快的事情

6

如何Dave;)

虽然严重,约DataAccess

+0

用于'Dave'的+1,用于'DataAccess'的-1的 – salathe 2010-04-23 18:35:27

+0

Dave听起来不错。 – moo 2010-04-23 18:44:03

+6

告诉人们这是Data Access Value Enumerator的首字母缩写。他们可能会相信它! – webbiedave 2010-04-23 18:55:22

1

你可以把它AccessLayer什么。

2

不知道该类是如何使用的以及要打包的数据是什么,很难对其进行命名。 “用魔法OOP包装一些数据”是非常通用的,以至于难以使用有意义的类名。

如果是坐在控制器和数据库之间,可以将它称为ActiveRecord

如果真的只是提供一些OOP语法糖到array(),您可以简单地使用内置的StdClass

因为这个类的唯一目的似乎是包装一个数组,所以我很想把它叫做ArrayWrapper

1

它非常类似于KeyPairValue,如果你使它更专门化定义如何使用Hash()函数来查找它的条目,那么它就是一个Hashtable。

  • 类KeyPairValue
  • 类的Hashtable

现在的问题是为什么呢?大多数SDK会提供这样的数据结构?

尝试使用现有的结构,而不是重新发明它们。