道歉,如果这已被其他地方回答,我的搜索没有产生相当我正在寻找的答案。面向对象在哪里放孤儿方法
坦白地说,让我们说我建立了一个书店的应用程序。
我有一个处理我所有的数据库事务的类。我也有扩展数据库类,从调用它自己的构造数据库构造一个“书”类,不再需要实例化数据库类第一:
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