PHP面向对象程序设计之对象生成的示例分析
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章给大家分享的是有关PHP面向对象程序设计之对象生成的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体如下:对象看个例子
千家信息网最后更新 2026年10月31日PHP面向对象程序设计之对象生成的示例分析
这篇文章给大家分享的是有关PHP面向对象程序设计之对象生成的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
具体如下:
对象
看个例子
name = $name; } abstract function fire();}class Minion extends Employee { // 奴隶 继承 雇员 function fire() { print "{$this->name}: I'll clear my desk\n"; }}class NastyBoss { // 坏老板 private $employees = array(); function addEmployee( $employeeName ) { // 添加员工 $this->employees[] = new Minion( $employeeName ); // 代码灵活性受到限制 } function projectFails() { if ( count( $this->employees ) > 0 ) { $emp = array_pop( $this->employees ); $emp->fire(); // 炒鱿鱼 } }}$boss = new NastyBoss();$boss->addEmployee( "harry" );$boss->addEmployee( "bob" );$boss->addEmployee( "mary" );$boss->projectFails();// output:// mary: I'll clear my desk?>再看一个更具有灵活性的案例
name = $name; } abstract function fire();}class Minion extends Employee { function fire() { print "{$this->name}: I'll clear my desk\n"; }}class NastyBoss { private $employees = array(); function addEmployee( Employee $employee ) { // 传入对象 $this->employees[] = $employee; } function projectFails() { if ( count( $this->employees ) ) { $emp = array_pop( $this->employees ); $emp->fire(); } }}// new Employee class...class CluedUp extends Employee { function fire() { print "{$this->name}: I'll call my lawyer\n"; }}$boss = new NastyBoss();$boss->addEmployee( new Minion( "harry" ) ); // 直接以对象作为参数,更具有灵活性$boss->addEmployee( new CluedUp( "bob" ) );$boss->addEmployee( new Minion( "mary" ) );$boss->projectFails();$boss->projectFails();$boss->projectFails();// output:// mary: I'll clear my desk// bob: I'll call my lawyer// harry: I'll clear my desk?>单例
props[$key] = $val; } public function getProperty( $key ) { return $this->props[$key]; }}$pref = Preferences::getInstance();$pref->setProperty( "name", "matt" );unset( $pref ); // remove the reference$pref2 = Preferences::getInstance();print $pref2->getProperty( "name" ) ."\n"; // demonstrate value is not lost?>点评:不能随意创建对象,只能通过Preferences::getInstance()来创建对象。
工厂模式
getApptEncoder(); // 获取对象print $bloggs->encode();?>
output:
Appointment data encoded in BloggsCal format
进一步增加灵活性设置
mode = $mode; } function getHeaderText() { switch ( $this->mode ) { case ( self::MEGA ): return "MegaCal header\n"; default: return "BloggsCal header\n"; } } function getApptEncoder() { switch ( $this->mode ) { case ( self::MEGA ): return new MegaApptEncoder(); default: return new BloggsApptEncoder(); } }}$man = new CommsManager( CommsManager::MEGA );print ( get_class( $man->getApptEncoder() ) )."\n";$man = new CommsManager( CommsManager::BLOGGS );print ( get_class( $man->getApptEncoder() ) )."\n";?>output:
MegaApptEncoder
BloggsApptEncoder
工厂方法模式要把创建者类与要生产的产品类分离开来。
抽象工厂
通过抽象来来约束,成为一定的规矩。
getHeaderText();print $mgr->getApptEncoder()->encode(); // 对象调用方法,返回对象,继续调用方法。print $mgr->getFooterText();?>
output:
MegaCal header
Appointment data encoded in MegaCal format
MegaCal footer
更加牛逼的实现
getHeaderText();print $mgr->make( CommsManager::APPT )->encode();print $mgr->getFooterText();?>
output:
BloggsCal header
Appointment data encoded in BloggsCal format
BloggsCal footer
原型模式
改造成一个保存具体产品的工厂类。
sea = $sea; $this->plains = $plains; $this->forest = $forest; } function getSea( ) { return clone $this->sea; // 克隆 } function getPlains( ) { return clone $this->plains; } function getForest( ) { return clone $this->forest; }}$factory = new TerrainFactory( new EarthSea(), new EarthPlains(), new EarthForest() );print_r( $factory->getSea() );print_r( $factory->getPlains() );print_r( $factory->getForest() );?>output:
EarthSea Object()EarthPlains Object()EarthForest Object()
感谢各位的阅读!关于"PHP面向对象程序设计之对象生成的示例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
对象
工厂
灵活性
方法
模式
示例
程序
程序设计
分析
生成
设计
内容
更多
篇文章
不错
实用
炒鱿鱼
产品
代码
例子
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
咖啡网
手冲咖啡和咖啡机区别
互联网科技公司怎么样
以房互联网科技
科技互联网公司logo
互联网科技视频素材
互联网金融科技委员会
科技大学互联网专业好不好
安控科技rtu产品工业互联网
现代互联网科技股
中国科技创新与世界互联网大会
迪庆互联网科技招生
互联网金融科技名词解释
北京市互联网新科技
杭州披云加互联网科技有限公司
厦门江牛科技互联网
福州德业互联网科技
互联网界的黑科技
北京军民互联网科技公司
10位科技互联网大佬
科技互联网
互联网科技活动banner
九亚互联网科技
互联网金融科技创新
沃里互联网科技
亿人帮互联网科技
互联网5g黑科技有哪些
想开互联网科技公司怎么样
济南小医互联网科技有限公司招聘
互联网科技大佬云集