掌握基础知识的简单面向对象练习


Simple object-oriented exercises for grasping the basics

我正在教几个朋友一些PHP中基本的面向对象概念,我想给他们一些真实的例子,但要简单,这样他们就可以掌握OO的语法和基础知识。我已经给了他们下面的练习:创建一个抽象HTML表单创建的小类。您可以为每个表单字段创建对象,每种类型的字段都有一个类。我还有一个接收表单字段对象的表单类。

你们有其他例子或练习的想法吗?谢谢!

我的博客关于PHP中的对象可能会有用:

http://agiletoolkit.org/blog/how-to-use-object-oriented-programming-in-php/

它给出了如何浸渍"几何"类,三角形,矢量,正方形等的例子。

当我学习OOP的时候,我读了一本用c++写的类似例子的书,但是我忘记了名字

为了进入面向对象的思维方式,我一直喜欢的一个简单的练习是采用一些简单的现实世界概念并将其建模为对象。这些概念可以是任何东西:

  • 咖啡机
  • 自行车
  • 等。

它与语言、平台等无关。其思想是抽象出所有的实现细节(如PHP和HTML),并专注于面向对象的思维。这样一个对象的模型看起来如何?它的属性是什么?它的约束条件是什么?它的行为如何?它是如何与其他对象交互的?

你可以通过它们的外部可观察的特征和行为,它们的交互等来有效地设计抽象类型,然后用PHP或任何其他选择的语言实现这些抽象。但关键是要将面向对象的思想从具体的实现中分离出来。

一些有用/实用的东西:

    几乎每个人似乎都从数据库抽象库开始。非常简单的操作
  • 不同缓存库(memcache, apc, file cache)的抽象
  • 可能是一个简单的路由器

尝试一个表生成类,在这个类中,它们接收一个数组,并根据数组的内容显示一个表。

这取决于他们已经知道多少,如果他们有c++/C编程的经验,并开始面向对象,那么从数据库,表单,矢量等例子将工作,如果他们有相对较少的经验,那么你必须从抽象或现实生活的例子开始,例子引用在另一个回复

A coffee maker
A chicken
A bicycle
etc.

在理解面向对象的概念及其背后的理论方面非常有用(尽管你提到过你不喜欢这样的例子)。他们必须看到每件事如何一起工作以形成一台机器,每个组件(类)如何工作和交互(公共方法和接口),同时隐藏自己的功能,并为其他组件(类)提供一组服务。

老师们举的一个非常流行的例子是收音机,用户不知道收音机里面有什么,也不知道它是如何工作的,用户只知道它是做什么的,用户通过面板上的按钮可以使用收音机的功能。

这些基本的例子对初学者来说很好,然后马上就应该有一个与之相关的编程作业。在我看来,一旦他们理解了基础知识,就应该使用编程和应用程序示例而不是抽象示例。