在CodeIgniter或PHP中设计自己的库

时间:2011-07-28 03:26:27

标签: php oop

我是一个在PHP中实现OOP的新手。对于PHP项目,我经常使用codeigniter框架。目前,我在为自己的库设计类时遇到了问题。 这是描述:

class ABC{
        function A(){

        }
        function B(){

        }
        function C(){

        }
}
class XYZ{
        function A(){

        }
        function similarToB(){

        }
        function X(){

        }
}

ABC类和XYZ类似的功能。功能 A 在两个类之间共享。 ABC类中的函数B 类似于XYZ类中的 function similarToB (它们具有相同的名称和参数,但实现方式不同)。 功能C 功能X 完全不同。可能还有其他类似的课程 设计这些类的最佳方法是什么(例如使用继承,接口等)?

2 个答案:

答案 0 :(得分:1)

我的建议:

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() { }
}

我知道每个人都会给你“依赖”shtick(这确实取决于你想做什么),但我认为这正是你要找的。

答案 1 :(得分:0)

您可以将其编码为单个类,将其保存为两个类,甚至将其编码为八个单独的类。也许你可以在一个基类上创建两个扩展基类的类。

哪个最好取决于您要做的事情。

基本上,大多数编程实际上是构建一个真实世界过程的抽象模型,它本身可能是真实的或抽象的。最好的设计是最能反映现实世界过程的设计。

因此,如果你试图实施一个“邮购”和“直接销售”,这两个都是销售的变种,我会推荐一个基础“销售”类,其中包含“mail_order”和“direct_order”类基类。

相反,如果你试图实施一个“邮件订单”和一个“邮件广告”,它们是恰好使用邮政系统的独立企业流程,我会将这些类完全分开。

相关问题