首页 > php教程 > PHP开发 > 正文

星际争霸之php单件和单态模式

php中文网
发布: 2016-06-07 17:23:05
原创
1439人浏览过

星际争霸允许玩家作弊,当然这是在人和电脑对战的时候。而且作弊有个特点,比如快速建造,能量无限是对所有的玩家(包括电脑)都生效,如果关闭了作弊,对所有的玩家的作用都同时消失。

这也就是说如果我们把作弊状态作为一个类,他只能有一个对象。

待解决的问题:确保某个类只能有一个对象。

思路:把对外新建对象的权利都收回,包括new,clone。为了防止通过子类来覆盖父类的方法和成员,将类设置为final。用static成员来保存唯一的对象

表单大师AI
表单大师AI

一款基于自然语言处理技术的智能在线表单创建工具,可以帮助用户快速、高效地生成各类专业表单。

表单大师AI 74
查看详情 表单大师AI

单件模式示例:

立即学习PHP免费学习笔记(深入)”;

<?php //将类设置为final,禁止其他类继承它

final class cheat {

  //快速建造的生效状态,用private保护

  private $fastBuild = false;

  //用static成员来保存唯一的对象

  private static $instance;

  //设置快速建造的生效状态的方法,用public为了能够公开调用

  public function setStatus($input)

  {

        //如果输入的秘籍正确,operation cwal是快速建造的秘籍

        if($input === &#39;operation cwal&#39;)

        {

        //像开关一样,逆反状态

        $this->fastBuild = !$this->fastBuild ;

        }

  }

  //读取快速建造的生效状态的方法,用public为了能够公开调用

  public function getStatus()

  {

    return $this->fastBuild ;

  }

  //获取唯一对象的唯一方法

  public function getInstance()

  {

        //如果对象没有被新建,则新建它

        if(!isset(self::$instance))

        {

        self::$instance = new cheat() ;

        }

    return self::$instance ;

  }

  //用private来禁止在本类以外new对象

  private function 
登录后复制
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号