策略模式根据不同的性别给出不同的推荐

本文介绍了一个使用PHP面向对象编程的示例,展示了如何通过接口、类和对象实现不同行为的封装与调用。具体包括定义接口Ihobby,以及其实现类Malehobby和Femalhobby,通过页面类Page的实例化和方法调用来动态选择并执行不同对象的行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?php
define("BASDIR",__DIR__);
include BASDIR."/Phpclass/Loader.php";
spl_autoload_register("\\Phpclass\\Loader::autoload_rege");

class page
{

protected $ihobby;//0、这里主要是创建一个空对象,通过第二步转移过来

function index()
{
$this->ihobby->showadds();//3、最后通过对象本身来调用,自己的方法
$this->ihobby->showmore();

}

function set_hobby(\Phpclass\Ihobby $Ihobby)//这里指明了空间类,当然不指名,试了一下,也没有出现问题
//可能是限定在这个空间或这个类中.
{
$this->ihobby = $Ihobby;//转移对对象
}

}

$page =new page();

if(isset($_GET['male']))
{
$Ihobby = new \Phpclass\Malehobby();//1、这里根据不同的值来创建对象(实例化)
}else
{
$Ihobby = new \Phpclass\Femalhobby();//1、这里根据不同的值来创建对象
}

$page->set_hobby($Ihobby);//2、这里把创建的对象,转移给之前创建的空对象

$page->index();

----------------------------------------------------------------------------index3.php

<?php

namespace Phpclass;

interface Ihobby
{
function showadds();
function showmore();

}

----------------------------------------------------------------------------Ihobby.php

<?php
namespace Phpclass;
class Malehobby implements Ihobby
{
function showadds()
{
echo "this is male hobby\n";
}

function showmore()
{
echo "this is the contents for male";

}
}

----------------------------------------------------------------------------Malehobby.php
<?php
namespace Phpclass;


class Femalhobby implements Ihobby
{
function showadds()
{
echo "this is femal hobby-add\n";
}
function showmore()
{
echo "this is the contents for Femal";
}

function atest()//可以除了接口规定的函数外,还可以有其它函数
{
echo "test";
}
}

----------------------------------------------------------------------------Femalehobby.php


转载于:https://www.cnblogs.com/nfyx/p/10745253.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值