我是一个用PHP实现OOP的新手。对于PHP项目,我经常使用codeigniter框架。目前,我在为自己的图书馆设计课程时遇到了一个问题。以下是描述:
class ABC{
function A(){
}
function B(){
}
function C(){
}
}
class XYZ{
function A(){
}
function similarToB(){
}
function X(){
}
}ABC和XYZ类具有类似的特性。函数--在两个类之间共享。函数B来自ABC类的类似于XYZ类的函数similarToB (它们具有相同的名称和参数,但实现不同)。函数C与函数X完全不同。可能还有另外一个类似的类。
设计这些类的最佳方法是什么(例如使用继承、接口等)?
发布于 2011-07-28 03:39:08
我的建议:
class ancestor {
public function A() { }
}
interface BInterface {
public function B();
}
class ABC extends ancestor implements BInterface {
public function B() { }
public function C() { }
}
class XYZ extends ancestor implements BInterface {
public function B() { }
public function X() { }
}我知道每个人都会给你“看情况而定”(这确实取决于你想做什么),但我认为这就是你想要的。
发布于 2011-07-28 03:39:10
您可以将其编码为单个类,将其保存为两个类,甚至可以将其编码为八个单独的类。也许您可以上一个基类,然后有两个类来扩展基类。
什么是最好的取决于你想要做什么。
从本质上讲,大多数编程实际上是建立一个抽象的模型,它本身可能是真实的,也可能是抽象的。最好的设计是最能反映真实世界过程的设计。
因此,如果您试图实现一个“邮件订单”和一个“直接销售”,这两者都是销售的变体,我建议使用一个基类"mail_order“和"direct_order”类来扩展基类。
相反,如果您试图实现一个“邮件订单”和一个“邮件广告”(它们是恰好使用邮政系统的单独的事务处理程序),我会将类保持完全独立。
https://stackoverflow.com/questions/6853781
复制相似问题