搜索
首页php教程PHP开发星际争霸之php单件和单态模式

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


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


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


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



单件模式示例:

<?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 
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器