【发布时间】:2011-08-24 13:59:09
【问题描述】:
我正在努力研究如何最好地完成我的课程设计工作。
我的情况。
我有一个订单抽象类,其中包含 2 个子类所需的订单方法和信息
order_Outbound
和order_inbound
每个子类需要 2 个名为 create 和 get 的静态公共方法
但是根据我所读到的关于 php 5.3 的内容,你不能有抽象的静态方法???
所以我的想法是有一个接口 Order_Interface 来接管该角色,但我如何实现它。我还要在父类中实现吗
在这种情况下,父抽象类仍然需要我在抽象类中创建一个 get 和 create 方法。还是我在孩子中实现它并从抽象类扩展???
还有!!! 出站和入站子节点都需要创建静态方法,但需要传递不同的参数
我可以在接口中有公共静态函数create()
并在 order_outbound 的实现中声明它为 public static function create($address, $reference, $orderID)
【问题讨论】:
-
我没有看到代码,所以这只是一个猜测,但
Order::create()和Order::get()可能根本不应该是静态的,除非你有一些理由将它们设为静态。跨度> -
@Crozin - 如果您出于某种原因不想使用构造函数,并且想要创建实例的方法,您可能不想创建实例来调用实例创建方法。
-
对不起,这正是我这样做的原因。这些类代表数据库记录。我的构造函数受到保护并使用静态方法来检索类的实例。
-
所以让它们代表数据库记录,别无他法。您应该有单独的对象来从数据库中检索数据并将其填充到对象中。