当前位置: 首页 > 后端技术 > PHP

PHP设计模式(一)OOP

时间:2023-03-29 22:20:55 PHP

Object-OrientedProgramming(OOP)在学习设计模式之前,你需要了解什么是面向对象编程(OOP)。OOP的基本概念面向对象编程是一种编程思想。面向对象编程就是以对象作为程序的基本单位。对象是PHP中的类。对象由两部分组成,称为属性和方法。其中,属性是指变量和常量,方法是指函数。OOP的核心思想面向对象编程(OOP)的核心设计思想是抽象。抽象表示将对象与所有其他对象区分开来的对象的基本特征,从而从观察者的角度提供清晰的界限。问题越复杂,解决它的方法就越抽象。在PHP中,它提供抽象类(abstractclass)。抽象类为我们提供了面向对象编程和设计模式的组织机制。抽象类不能被实例化,只有具体类才能继承抽象类的接口,以及抽象类的所有属性。PHP中没有抽象属性,但是可以声明一个不指定值的属性,作为抽象属性来使用,但并不一定要使用这个属性。不同的是PHP抽象类中的抽象方法,如果子类继承抽象类,则子类必须实现抽象方法。抽象方法就像一个契约,强制所有的子类继承并且必须实现它。封装是OOP的一个基本特征,可以隐藏实现细节,使代码模块化。在编程中,正是因为封装,对象才是对象。封装是对构成抽象结构和行为的抽象元素进行分区的过程。封装的作用是将抽象合约接口与其实现分离。在PHP中,类通过限制对其方法和属性的访问来实现封装,也就是可见性。PHP使用3种类型的可见性:私有(private)、保护(protection)、公共(public)。如果是私有访问类型,这个属性或方法只能在同一个类中访问,并且只对同一个类中的元素可见。但是,如果类是通过构造函数(__construct)实例化的,则另一个对象可以访问私有属性和方法。如果是受保护的访问类型,则允许此类及其子类访问该属性。抽象方法和具体方法的可见性都可以设置为受保护。对于抽象方法,必须先实现它们才能使用。具体的方法可以直接使用子类,不需要额外实现。如果是public访问类型,那么这个类的属性或方法对外是可见的。要成为一个真正有用的类,至少它的某些方法必须是可见的,并且所有构造函数都是公开的。Inheritance继承,顾名思义,如果一个类扩展了另一个类,它就会拥有这个类的所有属性和方法。继承的作用是扩展现有的类。为了保证类之间的松散绑定,抽象类通常是继承的,而且是浅继承,即只有一层子类。如果一个程序通过深度继承绑定到一个具体的类,那么即使对父类进行简单的修改也会对子类造成严重的破坏。多态性在实际编程中,多态性是指同一个操作作用于不同的对象,会有不同的解释,产生不同的执行结果,即调用具有相同接口的对象来完成不同的任务。