php与面向对象编程

为什么采用面向对象编程

解决问题更容易
设计计算机是为了解决人类的问题。这里有一个称为动态编程的过程,这是一种将大问题拆解为小问题的技术。其策略是先解决各个较小的问题,然后把所有结果汇总在一起形成一个更大的解决方案。

模块化
把一个问题分解为小的子问题,这个过程就是模块化过程。

类与对象

分解一个复杂问题会把它变换成多个简单的子问题,不过你需要有一种方法来组织这些模块,让它们相互协作共同处理所要解决的大问题。一种方法是,把一个模块看做是相关函数的集合。在编程中,这些模块称为类。类本身由两大部分组成,分别称为属性和方法。属性是不同类型的数据对象,如数字、字符串、null和布尔类型。通常数据作为抽象数据类型存储,如存储为变量、常量和数组;方法是处理这些数据的函数。

单一职责原则
可以把类看作是有共同特征的对象的集合。特征的共同性并不是指这些对象是相同的,而是指它们都处理模块(即类)的共同问题。

php中的构造函数
php类有一个特有的特性:使用__construct{}语句作为构造函数。大多数计算机语言都使用类名作为构造函数名;不过,使用__construct{}语句有一个好处,可以消除对函数用途的疑问,也就是说,可以清楚地看出它是一个构造函数。

顺序和过程式编程有什么问题

东西没损坏的话,那就别去修理它了,很多人都有这种想法。如果一个方案可行,你可能会想当然的接受这个方案。不过,这种态度绝对是取得进展和提升的障碍。比如说,如果要从一个地方到另一个地方,可以步行过去。不过,要是距离很远,比如从一个国家的最南端到最北端,坐飞机前往会好很多。OOP和设计模式相对于顺序和过程式编程就相当于坐飞机相对于步行。

顺序编程
大多数程序员开始编程时都是逐条地写语句,建立一系列代码来执行一个程序。 例如,下面就是一个很好的php顺序程序

$a = 1;
$b = 2;
$c = $a + $b;
echo $c;

将2个数相加对于PHP来说是一个很简单的问题,只要是处理简单的问题,就可以使用简单的解决方案。

过程式编程
随着程序员开始写越来越长的程序来完成更复杂的任务,这些顺序代码就会开始相互纠缠,变成所谓的意大利面式代码。goto语句运行程序员在程序中跳转来完成一个过程,这样很容易陷入混乱。

过程编程引入了函数。function就是一个小对象,可以利用一条语句调用某个操作来完成一个序列。例如,下面是以上顺序程序的过程式版本。

function add($a, $b) {
    $c = $a + $b;
    echo $c;
}

add(1, 2);

过程允许程序员将代码序列分组为模块。不过,过程编程没有提供类(利用类,编程任务可以打包到对象)。类对象可以处理自己的数据结构,这是函数无法单独做到的。

因此,如果采用顺序编程,完成大型任务需要很长的序列。另外采用过程编程时,团队合作也比较困难,因为不同的团队成员无法像oop那样轻松地处理独立但相互关联的类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值