在PHP5当中对象的一些新特性
对象:
在PHP当中对象是由属性和方法组成的数据(只要是对象就有方法和属性),也就是常说的万物皆对象;
对面对象:
所谓的面对对象就是关注对象;
面对对象编程:
面对对象编程,关注对象然后编程,使用代码来实现这个对象,当中有三个特征:
1;封装: 一个类封装了数据以及操作数据的逻辑,定义数据的可访问属性(私有,公有);
2:继承: 可以通过一个一个类获取另外一个类的属性的方式,分别来实现继承和接口继承(子类继承父类);
3:多态: 类实例的一个方法在不同情形下有不同的表现形式,即不同的外在行为。使具有不同的内部结构的对象可以共享相同的外部接口。
类:
一类对象(可以包括有属于自己的常量,变量(属性)以及函数(方法));
自定义类 class + 类名 { 属性; 方法;}
类与对象的关系:
一个对象是实例化。 now(类名); (实例化得到一个对象)
面对对象的五个原则:
1;单一功能原则: 每个类型(包括接口和抽象)功能要求单一,只负责做一件事情;
2:开放封闭原则: 一个软件实体应该对扩展开发,对修改关闭。可扩展但是不可以更改;
核心:用于抽象构建框架,用实现类实现扩展。
3:替换原则(里氏代换原则):子类能够替换父类,出现在父类能够出现的任何地方;
当使用继承时,尽量遵循历史替换原则,尽量不要去重写或者重载父类的方法,以免破坏整个继承体系,因为父类在定义或者实现某些方法时,规定了必须遵守的规则和契约。
4:依赖原则: 具体依赖抽象,长层依赖下层。核心思想是面向接口编程;
两个模块之间依赖的应该是抽象(接口或者抽象类)而不是细节。细节(实现类)依赖于抽象。
依赖的原则基于的事实:相对于实现类的多变性,抽象的东西要稳定很多,基于抽象的构架也比基于实现的构架要更加稳定,且扩展性更高。
5:接口分离原则:模块间要通过具体接口分离开,而不是通过类强耦合。例如A类对B类的依赖,可以抽象接口I,B实现I,A类依赖I来实现。但是抽象接口必须功能最小化(与单一功能原则有点不谋而合)。
迪米特原则:最小依赖原则,一个类对其他类尽可能少的了解,只与朋友通信。降低耦合
依赖原则告诉我们要面向接口编程,接口分离原则告诉我们设计接口的时候功能要单一,里氏替换告诉我们不要破坏继承体系而是去扩展,单一功能原则告诉我们实现类要功能单一, 开放封闭原则则是总纲 对扩展开放和对修改封闭。