我正在尝试创建SQL
查询对象的层次结构。我的基类将命名为 Query。它将具有类似的方法Query.setTable("tableName")
。
然后我打算让一个SelectiveQuery
对象扩展 Query 对象。该对象将具有类似的方法SelectiveQuery.where("aColumn","=","123")
。
然后我计划让UpdateQuery
, SelectQuery
, DeleteQuery
, 和CountQuery
所有扩展SelectiveQuery
。当我试图弄清楚如何创建InsertQuery
类时,我的困境就出现了。我希望它扩展 Query 但不扩展SelectiveQuery
。
最重要的是,InsertQuery
它将UpdateQuery
共享一些相同的方法,例如setValue("aColumn","aValue")
. 我宁愿只维护这些方法UpdateQuery
并且InsertQuery
在一个位置有共同点。我该如何解决这个问题?如果我在PHP
. 我想我会使用 Traits 来做到这一点。