我正在尝试设计我的类的最佳方法,我认为抽象类在这里正确的方式,但我不确定!我正在构建一个Wordpress推车的插件,目前,它将适用于Woocommerce和WP-Ecommerce。由于这两个系统具有某些功能的不同实现,例如获取订单对象,我想为每个平台创建一个单独的类。
我有以下内容,它将包含从其继承的类可用的泛型方法。永远不应该实例化这个类:
class Order_Export {
}
然后我还有两个将从上面继承的类:
class Order_WooExport extends Order_Export {
}
class Order_WPExport extends Order_Export{
}
我的设计就在这里吗?我是否正确地说Order_Export类应该是一个抽象类?那些我希望类继承实现的方法呢?我只是简单地在抽象类中标记签名而不是提供正文,或者接口是否在某处发挥作用?
如何实例化正确的课程?我是否创建了一个将返回其中一个的工厂?
任何建议表示赞赏!
答案 0 :(得分:1)
使用抽象基类的声音是正确的,只要您确定永远不需要实例化Order_Export
:
abstract class Order_Export
{
abstract protected function someMeth1();
abstract protected function someMeth2();
public function someMeth3() {
// Do common thing to both Order_WooExport and Order_WPExport
// using someMeth1(), someMeth2()...
}
}
然后:
class Order_WooExport extends Order_Export
{
protected function someMeth1() {
// Do something specific
}
protected function someMeth2() {
// Do something specific
}
}
最后,工厂似乎也是正确的方式。