幾周前我開始練習面向對象的PHP,我做了一些類,但我不知道我是否正確理解這些概念。正因爲如此,我想展示一些課程,如果有人能告訴我他們對此的看法並能教我一些東西,我會很高興。PHP面向對象:抽象,接口,繼承等
,我會很感激,如果你能解釋一下你的評估和修改背後的原因,並記住......我在學習:$
我有一個目錄的產品,我們可以有多種類型的目錄。基本上是一個目錄是產品類的實例的集合...
我實現了一個基類目錄是這樣的:
class BaseCatalog
{
protected $_collection;
protected $_count;
public function __construct()
{
// some stuff here
}
public function getCount()
{
return $this->_count;
}
public function getProducts()
{
return $this->_collection;
}
}
後來當我會用我的目錄擴展此類
class OrganicCatalog extends BaseCatalog implements InterfaceCatalog
{
protected $_collection;
protected $_count;
public function __construct()
{
parent::__construct();
// some more things here depending catalog type
}
// some more methods specific of this catalog type
最後一個接口:
interface InterfaceCatalog
{
public function getCount();
public function getProducts();
}
有關的一些疑惑代碼
- 所有目錄類型將具有相同的屬性,它們之間的差異是獲取此信息的過程。
- 接口將有方法,所有目錄類型將實現,但只有方法的原型(如果我將定義一些行爲,我應該使用抽象類)它是正確的嗎?
- 我認爲基礎產品將永遠不會直接實例化,我在抽象思維,但我一直在閱讀,摘要不能修改屬性...也許我可以把構造私有?
- 哪種方法可以聲明屬性(collection,count ...)?只在基地?有人可以解釋嗎?
- 將訪問器(getter和setter)放入基類中是正確的嗎?
我認爲這是所有... 謝謝大家提前,我知道這是一個有點無聊,解決像我的初學者疑惑。
很遺憾我的英語:$
我不會以$ _開頭的成員變量,這是一個php4的回退。 –