页面正在进行中! 类、对象、服务、实体、价值-对象
异常是面向对象编程的工具,它提供了一种优雅的方式来抛出和处理(对待)应用程序错误。 异常首先被抛出(thrown),被处理(try),被捕捉(catch)。只有投掷是强制性的。 异常生成理念 在异常出现之前,编程中的错误处理是非常复杂的,因为我们必须依赖函数的返回值,并以自己的方式捕捉它们,并做出相应的行为。 事实上,函数本身并不执行错误处理,这可能会导致致命的问题,但David在Programmers don't ignore errors中已经写到了这一点。 一个被遗忘的错误处理的例子。 /…
面向对象编程的基本属性之一是继承和封装。有了这些功能,你将能够轻松地构建复杂的应用逻辑,同时保持良好的实现可读性。 继承的原则 继承表达了一个类的实现是基于另一个类的。在OOP术语中,我们谈论后裔(继承的类)和祖先(我们继承的类)。 一般来说,继承的工作方式是,子代获得祖代的所有特性,或者完全采用祖代的特性,或者以自己的方式修改它们,或者完全覆盖它们并使用自己的实现。 这种方法的使用非常广泛,许多设计模式都使用了继承。 继承的真正用途--应用程序中的展示者 继承很适合设计所谓的呈现器,这是一种特…
有一个著名的笑话说,程序员只有在自己写了框架之后才开始使用框架,并且发现它没有任何进展。这件事的有趣之处在于它是真的。我自己也有过这样的经历。两次,甚至两次。 然而,即使在Nette的主页上,也说。 真正的程序员不使用框架。他们通过命令行直接向服务器编写网络应用。这是对他们的赞美。对于我们其他人来说,Nette将使我们的工作变得更容易、更愉快。 框架在应用程序开发中的作用 我相信你自己也知道这一点。 你得到了一个伟大项目的想法,于是你开始直接用纯PHP编写绿地代码……几个小时后,你发现很多工作仍…
OOP的主要原则之一是**封装原则,它说复杂的问题应该被分解成许多小问题,我们可以独立地同时解决。同时,我们作为用户并不关心它是如何发生的,数据(内部状态)仍然是孤立的。 例如,如果我们要解决的问题是如何根据用户查询的表达式"(5+3)*(2/(7+3)) "返回结果 "1.6",可能我们都无法写出一个能一次性解决这个问题的函数或方法。 TIP:在将数学表达式处理为字符串一文中,对这类例子有一个现成的解决方案,但要做好准备,这并不容易。 封装带来了对象的抽象性 有了封装,你就可以 "作为用户 "…
方法代表了一个对象的行为,因为它们允许你处理其内部状态,以及影响对象之间的关系。 在现实世界中表示方法 考虑任何现实世界的物体,例如一只猫。一只猫有某些属性(名字、颜色、体重……),我们用属性来描述,然后还有行为(喵喵叫、走路、睡觉……),我们用方法来描述。由于世界上有很多猫("于是我像打雷一样吠叫,让有一百万只猫"),重要的是要记住,方法是一种普遍的东西,同样适用于所有特定类型的对象。 实际执行一种方法 在语言语法方面,让我们为一只猫定义一个类。 class Cat { public stri…
设计模式是思考编程的方式。 它们提供了一个建议、现成的做法、最佳实践和对发展的见解的集合。对于每种编程范式和任务类型,都有某些设计模式是最适合的。 优点--为什么使用设计模式? 在编程中,解决某些类型的问题是重复性的,所以选择一种方法来解决这些问题并不断重复这种方法是有意义的。 特别是在团队开发过程中,当每个人都知道应用程序将如何开发(根据哪种设计模式)时,他们就会应用它,这就是主要的好处。这样就省去了不必要的几十个小时来调试写得很奇怪的代码,并试图理解作者的意图原则。 MVC--一个使用设计模…
我相信你知道这一点,在为PHP脚本编程时,我们把代码分成许多文件,为了让所有的部分都能使用,我们用一系列的 "include"、"require "或最好是 "require_once "调用来加载它们,这样可以保证只加载一次。 在代码中,它看起来像这样。 require_once 'Router.php'; require_once 'Page.php'; require_once 'Paginator.php'; 这种方法的主要缺点是,程序员必须不断地确保所有的东西总是被加载。但是,如果他加…
面向对象的编程是一种范式,一种对如何编程的看法。你很快就会看到,OOP给所有的常见问题和困难带来了相当根本的简化,这些问题在实际编程中被反复解决。 基本理念 面向对象编程的基本思想是将一个大型应用(复杂的任务)划分为许多小部分,我们可以优雅地独立解决。 例如,如果我们为一个机票预订系统编程,这是一个非常复杂的项目,要解决成千上万的情况。如果我们能将所有复杂的逻辑分解成许多层次和部分,我们就能很容易地理解整个复杂的系统,并对各个子任务进行独立编程。 OOP和将代码划分为对象的实际优势 除了学术观点…
欢迎来到在线课程《PHP中的OOP》的第一篇文章。有关完整的文章清单,请访问概览页。 内容说明: 这个系列的目标是*最好地解释面向对象编程的精髓,这样你就不必花几百个小时去实验那些没有意义的东西了。所有的技术和教程都来自于实践,并按照我自己在学习编程时的想法来解释。一些的概念被大大简化,以牺牲100%的事实正确性为代价,因为我相信,主要理解原则,至少对问题有一些了解,总比迷失在编程中,把一切都看成一个大麻烦要好。 你很快就会看到,用OOP编程对你的代码有巨大的好处。它将为你的应用程序带来一个新的…