[英]PHP classes: abstract, traits, extend, interface, singletons
我的“播放列表”課程很長; 具有可以處理播放列表緩存,變量和預設等功能。
class Playlist{
var $cache;
var $variables;
var $preset;
function __construct(){
$this->cache = populate_cache();
$this->variables = $this->populate_variables();
$this->preset = $this->populate_preset();
}
function populate_cache(){
}
function populate_variables(){
}
function populate_preset(){
}
}
由於閱讀變得非常困難(與緩存,變量,預設相關的許多功能),我開始將其拆分為幾個類(此處減少了代碼):
class Playlist{
var $cache;
var $variables;
var $presets;
function __construct(){
$this->cache = new PlaylistCache($this);
$this->variables = new PlaylistVariables($this);
$this->presets = new PlaylistPreset($this);
}
}
class PlaylistCache{
var $playlist;
function __construct(&$playlist){
$this->playlist = $playlist;
}
}
class PlaylistVariables{
var $playlist;
function __construct(&$playlist){
$this->playlist = $playlist;
}
}
class PlaylistPreset{
var $playlist;
function __construct(&$playlist){
$this->playlist = $playlist;
}
}
因此,播放列表對象將傳遞給每個“子類”。 如果我很了解,這稱為依賴注入 。 我不確定這是否很聰明,因為
但是我需要能夠通過每個子類訪問整個播放列表對象,這是我目前發現的唯一方法。
我已經知道有關擴展類的信息 ,但我不想在這里擴展類:緩存,變量和預設不是另一種播放列表,它們是我的播放列表需要填充的“屬性”。
我挖了一點,讀了有關Abstract Classes , Traits , Interfaces的信息 ,我想我的解決方案就在其中。 但是我找不到地方,而且很難理解,因為它真的很抽象,英語不是我的母語。
那么:有人知道我的意思並提出建議嗎? 謝謝 !
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.