抱歉,如果这已在其他地方得到解答,我的搜索并没有得到我正在寻找的答案。
假设地说,假设我正在为书店构建一个应用程序。
我有一个类可以处理我所有的数据库事务。我还有一个扩展 Database 类的“Book”类,从它自己的构造函数中调用 Database 构造函数,从而无需先实例化 Database 类:
class Book extends Database {
__construct($book_id){
parent::__construct();
$this->databaseGet("SELECT * FROM..."); // method in Database class
etc...
}
}
我可以将引用 id 传递给“Book”类构造函数,并创建一个对象,其中包含从数据库中提取的关于该书的信息以及与给定书相关的几种方法。
但我也想列出数据库中的所有书籍。我的问题是,我应该把这个方法和其他根本没有上下文的方法放在哪里,比如“书”?
我可以创建一个扩展 Database 类的“GetStuff”或“Bookshop”类,其中包含所有这些一次性方法。但这要求它一直被加载,因为这些孤立方法将在整个程序中使用。
我可以创建许多包含单个方法的类,但这需要将类实例化为一个对象才能调用该方法,这似乎有点矫枉过正。
它们不是通用公用事业,它们在商业模式中占有一席之地。我应该把这些孤儿方法放在哪里?