美文网首页
从零开始学设计模式(5):多态

从零开始学设计模式(5):多态

作者: 小甲鱼python | 来源:发表于2017-06-15 09:53 被阅读13次

Introduction

和C/C++,Java,Python等语言一样,PHP也支持多态。多态更多是是一种面向对象程序设计的概念,让同一类对象执行同一个接口,但却实现不同的逻辑功能。

多态/Polymorphism

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

interfaceIEat{

functioneatFish();

functioneatMoss();

}

classWhaleimplementsIEat{

publicfunctioneatFish(){

echo"Whale eats fish.\n";

}

publicfunctioneatMoss(){

echo"Whale doesn't eat fish\n";

}

}

classCarpimplementsIEat{

publicfunctioneatFish(){

echo"Carp doesn't eat moss.\n";

}

publicfunctioneatMoss(){

echo"Carp eats moss.\n";

}

}

$whale=newWhale();

$whale->eatFish();

$whale->eatMoss();

$carp=newCarp();

$carp->eatFish();

$carp->eatMoss();

?>

运行一下:

$ phpInheritance.php

Whaleeats fish.

Whaledoesn't eat fish.

Carp eats moss.

Carp doesn't eat moss.

注意PHP的函数定义不包含返回值,因此完全可以给不同的接口实现返回不同类型的数据。这一点和C/C++,Java等语言是不同的。此外,返回不同类型的数据,甚至不返回结果,对程序设计来说,会额外增加维护成本,已经和使用接口的初衷不同了(接口为了封装实现,而不同的返回值事实上是需要调用者去理解实现的)。

Summary

合理利用多态对接口进行不同的实现,简化你的编程模型,让代码易于维护。

如果你觉得眼前需要更好的提高你可以来千锋学PHP,国内排名第一的PHP机构。

相关文章

  • 从零开始学设计模式(5):多态

    Introduction 和C/C++,Java,Python等语言一样,PHP也支持多态。多态更多是是一种面向对...

  • 《从零开始学Swift》学习笔记(Day 63)——Cocoa

    《从零开始学Swift》学习笔记(Day 63)——Cocoa Touch设计模式及应用之单例模式 原创文章,欢迎...

  • iOS绘图

    ios阶段算法回调多态(观察者模式)把多态真正明白上一大台阶程序设计设计模式if else少出 创建UIBezie...

  • 设计模式-多态

    1.静态语言和动态语言静态语言,比如Java,是强类型的,在编译时就已经确定好变量的类型,编译器可以做一些性能优化...

  • 读书笔记 |《大话设计模式》之设计模式趣谈

    PART1、 前言 TOPIC: 23种设计模式的趣谈 收获 初步理解各种设计模式 通过设计模式理解封装变化、多态...

  • 要点1 Java相关

    1. 熟练掌握Java技术,熟悉面向对象思想,熟悉常用设计模式; 面向对象思想: 继承, 封装, 多态 设计模式:...

  • 总结3

    设计模式 设计模式 就是使用 多态,即继承和实现来实现的,只不过使用在不同场景下的时候,就会体现出不同的设计模式。...

  • 从零开始学设计模式(零)——设计模式介绍

    前言 对于有经验的开发人员,学习设计模式有助于我们找到在软件开发过程中所面临的问题的最佳解决方案。一直以来软件都是...

  • 从零开始学设计模式(7):设计模式分类

    Introduction 根据目的和范围,设计模式可以分为五类。按照目的分为:创建设计模式,结构设计模式,以及行为...

  • 设计模式-建造者模式

    设计模式 设计模式的本质是面向对象设计原则的实际运用,是对类的==封装性==、==继承性==和==多态性==以及类...

网友评论

      本文标题:从零开始学设计模式(5):多态

      本文链接:https://www.haomeiwen.com/subject/dusyqxtx.html