찾다
php教程php手册PHP设计模式原型模式

PHP设计模式原型模式

Jun 13, 2016 am 09:05 AM
원기모델디자인 패턴

PHP设计模式——原型模式

 

用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节,通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。它主要面对的问题是:“某些结构复杂的对象”的创建工作;由于需求的变化,这些对象经常面临着剧烈的变化,但是他们却拥有比较稳定一致的接口。

 

在php中,类已经实现了原型模式,php有个魔术方法__clone()方法,会克隆出一个这样的对象。

看一下UML类图:

 

角色分析:

1.抽象原型,提供了一个克隆的接口

2.具体的原型,实现克隆的接口

 

具体的代码:

 

/**抽象原型类
 * Class Prototype
 */
abstract class Prototype
{
   abstract function cloned();
}

/**具体原型类
 * Class Plane
 */
class Plane extends Prototype
{

    public $color;

    function Fly()
    {
        echo 飞机飞啊飞!
;
    }

    function cloned()
    {
        return clone $this;
    }
}

 

客户端测试代码:

 

header(Content-Type:text/html;charset=utf-8);
//------------------------原型模式测试代码------------------
require_once ./Prototype/Prototype.php;

$plane1=new Plane();
$plane1->color=Blue;

$plane2=$plane1->cloned();

$plane1->Fly();
$plane2->Fly();

echo plane1的颜色为:{$plane1->color}
;
echo plane2的颜色为:{$plane2->color}
;

这里只是介绍一下原型模式的核心思想,其实在实际开发中直接clone即可。

 

 

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경