1

我正在尝试找出设计课程的最佳方式,我认为抽象类在这里是正确的方式,但我不确定!我正在为 Wordpress 购物车构建一个插件,该插件目前适用于 Woocommerce 和 WP-Ecommerce。由于这两个系统对某些功能有不同的实现,例如获取订单对象,我想为每个平台创建一个单独的类。

我有以下内容,其中包含应该可用于从它继承的类的通用方法。这个类永远不应该被实例化:

class Order_Export {
}

然后,我还有 2 个类将从上述继承:

class Order_WooExport extends Order_Export {
}

class Order_WPExport extends Order_Export{
}

我的设计在这里吗?我是否说 Order_Export 类应该是一个抽象类?我希望类继承实现的方法呢?我只是在抽象类中标记签名而不提供主体,还是接口在这里的某个地方发挥作用?

如何实例化正确的类?我是否创建一个将返回一个或另一个的工厂?

任何建议表示赞赏!

4

1 回答 1

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
    }
}

最后,工厂似乎也是正确的选择。

于 2013-06-13T00:18:13.437 回答