道歉,如果這已被其他地方回答,我的搜索沒有產生相當我正在尋找的答案。面向對象在哪裏放孤兒方法
坦白地說,讓我們說我建立了一個書店的應用程序。
我有一個處理我所有的數據庫事務的類。我也有擴展數據庫類,從調用它自己的構造數據庫構造一個「書」類,不再需要實例化數據庫類第一:
class Book extends Database {
__construct($book_id){
parent::__construct();
$this->databaseGet("SELECT * FROM..."); // method in Database class
etc...
}
}
我可以傳遞的引用ID「圖書'類的構造函數,並創建一個包含從數據庫中獲取的關於該書的信息的對象以及與給定書相關的幾種方法。
但我也想列出數據庫中的所有書籍。我的問題是,我在哪裏放這個方法和其他方法,沒有像「書」這樣的上下文?
我可以創建一個單一的一個「getStuff」或「書店」,它擴展了數據庫類,其中將包含所有這些一次性使用的方法類。但是這需要它隨時加載,因爲這些孤兒方法會在整個程序中使用。
我可以創造很多的那家一個方法但這需要實例化類的一個對象,以調用該方法的類,似乎有點小題大做。
他們不是一般的事業,他們必須在商業模式的地方。我應該在哪裏放置這些孤兒方法?
爲什麼'Book'延長'Database'? Extension =「是」 – MikeB 2013-02-20 23:58:21
True。它將它擴展爲賦予數據庫的通用CRUD函數。它不需要首先實例化數據庫,因爲在其他調用它的類中沒有函數的情況下,數據庫是無用的。 – lewis 2013-02-21 00:00:46
不,書或書是CRUD函數的參數/結果。它們映射到「購買」或「銷售」或「廢料」或「FindUnderBed」。你不刪除一本書,你不再有庫存。你通過從數據庫中刪除它來實現它。書不是一個數據庫,它只是鬆散地連接到一個數據庫。 – 2013-02-21 00:18:48