首页 > 代码库 > 面向对象

面向对象

面向对象

一.単例模式:(単例模式是一种常见的设计模式。単例就是单一实例)

三公一私

a)         第一步:防止用户通过new关键字无限实例化对象

b)         第二步:增加一个静态公开方法,进入类的内部

c)         第三步:为当前类增加一个静态的私有属性。

d)         第四步:将__clone方法私有化

 

二. MySQLDB的単例模式:

a)         增加用于保存对象的静态属性

b)         把构造方法私有化

c)         增加一个可以获取単例的公共方法

d)         将__clone私有化

e)         测试

 

三.工厂模式(工厂模式也是一种设计模式)

a)       利用工厂方法,生产単例对象(也是単例的一种实现,但不是三公一私,而是在生产对象的工厂方法上进行处理。)

 

四.对象的遍历

a)       对象的一般遍历(foreach遍历,遍历对象里面的属性)

b)       自定义遍历 (foreach的五个步骤:初始化指针,判断指针是否合法,获取值,获取键,移动指针){

Current—获取值,key—获取键,next—移动下标,rewind—重置指针,valid—判断指针的

}

        

五.类型约束(支持限制函数或方法的形参的类型为一个指定类型)

 

六.类和对象的相关函数{

a)       .class.exists(判断一个类是否存在,需要一个类名的参数)

b)       Interface_exists(判断一个结构是否存在,需要有个接口名的参数)

c)       Method_exists(判断一个方法是否存在,需要两个参数,第一个对象是对象名,第二个对象是方法名)

d)       Isset(判断一个属性是否存在)

e)       Get_class(获取该对象所属的类)

f)        Get_parent_class(获取该对象所属的父类)

g)       Get_class_method(需要一个参数,就是该类名,返回一个索引数组,里面的元素就是该类的方法名)

h)       Get_class_vars(需要一个参数,就是该类名,返回一个索引数组,里面的元素,就是该类的属性的名字,公开和静态属性能被访问,私有的受访问权限限制)

i)         is_object(判断某个变量是否为对象)

}

七.命名空间初步(关键字:namespace)

a)       空间的定义(语法:namespace 空间名字。空间命名遵守基本标识符的命名规范。):如果脚本的开始需要定义命名空间,就必须在脚本的最开始定义。

在同一个脚本中,可以定义多个不同的命名空间,并且不同的命名空间可以定义相同的类,函数,常量。

 

八.空间成员和子空间

a)       空间成员:命名空间只管辖类,常量,函数,其它的都不属于命名空间管理。

b)       子空间:内存中的空间,也可以保存子空间。

 

九. 空间成员的访问:

a)      非限定名称访问:非限定名称的访问,就是不指定具体的空间名。非限定名称访问,只能访问当前所属空间。

b)      限定名称的访问:(语法:子空间名\成员名)从当前空间开始,访问子空间成员。只能访问当前空间的子空间:(语法:\空间1\空间2\。。。\成员名)不能访问父空间的成员

c)      完全限定名称访问:从根空间开始绝对路径访问相关空间

 

        

面向对象