扩展PHP类

| 我仍在学习如何使用类,并且想知道何时应该使用
extends
关键字(扩展类)。 假设我有一个做事情A的类(这是一个单例)。即使B类与A类并没有真正的联系,但它使用了很多方法,也可以将它扩展到另一种可以做B件事的工具吗?还是应该创建一个新的班级?     
已邀请:
        如果要通过两个类访问私有变量,则应使用扩展名。 如果您可以展示您的作品,我们可以告诉您您应该/不应该做什么。     
        当涉及到面向对象的编程时,类通常执行特定的任务,例如保存用户信息或输入/输出控件。 假设有一个用于控制输出的对象,您可以在该对象内设置一个方法来控制输出类型,或者应如何处理每个特定的内容,但这意味着这些对象是唯一的目的已被破坏,因为它现在不仅在发送内容,而且还根据其类型来操纵内容。 我们用来克服这种情况的一种方法是将一组任务分为一组类/对象,例如:
abstract class Output
{
    public $content_type = \'text/plain\';

    public function _send(){}
}
输出类显然具有更多的方法,但是只有与输出内容相关的方法(例如标头等),而不是内容的操作,那么您将拥有以下内容:
class HTMLOutput extends Output
{
     public $content_type = \'text/html\';
}
对于内容的处理:
class CSSOutput extends Output
{
    public $content_type = \'text/css\';

    public _send()
    {
         if($_SERVER[\'APP\'][\'Settings\'][\'CSSCompress\'] == \'1\')
         {
             $this->_compress_css();
         }

         parent::_send();
    }

    private function _compress_css()
    {
         $this->content = ; //Some compression lib
    }
}
这是在创建和组织许多分组的类/对象时要遵守的主要体系结构点。     
        在面向对象的编程中,如果一个类是具有特殊用途的特殊类型,则通常应扩展该类。 示例:自行车类扩展汽车 不好的例子:Car类扩展了Bike(可能共享相似的方法,但这没有任何意义)     
        确保创建一个用于存储单例实例的新静态成员,并重载
getInstance()
方法。如果不是,那么即使您调用ѭ5end,也将最终访问A实例,因为这两个类只有一个静态成员。     

要回复问题请先登录注册