2010-04-23 128 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會提供這樣的數據結構?

嘗試使用現有的結構,而不是重新發明它們。