资讯专栏INFORMATION COLUMN

PHP设计模式(四):继承

hellowoody / 912人阅读

摘要:原文地址设计模式四继承在设计模式二抽象类和接口以及设计模式三封装中,我们已经见过继承,也就是关键字。对于一个好的程序设计,需要类和类之间应该是低耦合的。继承通常是继承自抽象类,而不是具体类。

原文地址:PHP设计模式(四):继承

Introduction

在PHP设计模式(二):抽象类和接口以及PHP设计模式(三):封装中,我们已经见过继承,也就是extends关键字。
和C/C++,Java,Python等语言一样,PHP也支持继承,而且和其他语言没有什么区别。

继承/Inheritance

还是用动物、鲸鱼和鲤鱼来举例:

name . " is chewing " . $food . ".
";
  }
  protected function digest($food) {
    echo $this->name . " is digesting " . $food . ".
";
  }
}

class Whale extends Animal {
  public function __construct() {
    $this->name = "Whale";
  }
  public function eat($food) {
    $this->chew($food);
    $this->digest($food);
  }
}

class Carp extends Animal {
  public function __construct() {
    $this->name = "Carp";
  }
  public function eat($food) {
    $this->chew($food);
    $this->digest($food);
  }
}

$whale = new Whale();
$whale->eat("fish");
$carp = new Carp();
$carp->eat("moss");
?>

运行一下:

$ php Inheritance.php
Whale is chewing fish.
Whale is digesting fish.
Carp is chewing moss.
Carp is digesting moss.

注意$this在Animal类、Whale类、Carp类中的用法。
上面的代码看似常见,实则暗含玄机。对于一个好的程序设计,需要:

类和类之间应该是低耦合的。

继承通常是继承自抽象类,而不是具体类。

通常直接继承抽象类的具体类只有一层,在抽象类中用protected来限定。

Summary

合理的继承对于好的程序设计同样是必不可少的,结合abstract和protected,能让你编写出结构清晰的代码。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/30328.html

相关文章

  • PHP设计模式(十):适配器模式

    摘要:原文地址设计模式十适配器模式在设计模式七设计模式分类中我们提到过结构设计模式,结构设计模式专注于设计对象和实例的构建组合过程。适配器模式在不修改现有代码的基础上,保留了架构。 原文地址:PHP设计模式(十):适配器模式 Introduction 在PHP设计模式(七):设计模式分类中我们提到过结构设计模式(Structural patterns),结构设计模式专注于设计对象(Objec...

    paney129 评论0 收藏0
  • PHP面试之面向对象(1)

    摘要:二面向对象有什么特征面向对象的主要特征有抽象继承封装和多态。析构函数析构函数是在引入的,它的作用与调用时机和构造函数刚好相反,它在对象被销毁时自动执行。 PHP面试专栏正式起更,每周一、三、五更新,提供最好最优质的PHP面试内容。PHP中面向对象常考的知识点有以下7点,我将会从以下几点进行详细介绍说明,帮助你更好的应对PHP面试常考的面向对象相关的知识点和考题。整个面向对象文章的结构涉...

    phodal 评论0 收藏0
  • PHP设计模式(二)工厂方法模式(Factory Method)

    摘要:对于这个问题,接下来的工厂方法模式可以解决这个问题。二工厂方法模式的优点拥有良好的封装性,代码结构清晰。参考系列源地址系列目录设计模式概述设计模式一简单工厂模式设计模式二工厂方法模式设计模式三抽象工厂模式设计模式四单例模式 简单工厂简述: 简单工厂模式实现了产品类的代码跟客户端代码分离,但会有一个问题,优秀的代码是符合开闭原则如果你要加一个C类产品,你就要修改工厂类里面的代码,也就是说...

    zhjx922 评论0 收藏0
  • PHP面试(一)

    摘要:是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性,更通俗说有主键第三范式符合,并且,消除传递依赖。第三范式非主键之间不应该有依赖关系。 ## 一、数据库范式理解 第一范式(1NF):属性不可分 第二范式(2NF):符合1NF,并且非主属性完全依赖于码。2NF是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性,更通俗说有主键ID 第三范式(3NF):符合2NF,并且,消除...

    tuantuan 评论0 收藏0
  • PHP设计模式(五):多态

    摘要:原文地址设计模式五多态在设计模式四继承中我们介绍了继承,利用来进行程序设计的方法。和,,等语言一样,也支持多态。多态更多是是一种面向对象程序设计的概念,让同一类对象执行同一个接口,但却实现不同的逻辑功能。 原文地址:PHP设计模式(五):多态 Introduction 在PHP设计模式(四):继承中我们介绍了继承,利用extends来进行程序设计的方法。在PHP设计模式(二):抽象类和...

    ZweiZhao 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<