演示工厂模式

<div class="cnblogs_code">

PHP
("content-type:text/html;charset=utf-8"一个类,该类有一个方法,能够做到这种效果:
  给该方法传入一个类名,则该方法就可以返回这个类的对象。就像一个
“塑料制品”工厂:给它一个某种产品的“模具”,就可以生产该模具对
应的塑料制品。

<span style="color: #008000;">//<span style="color: #008000;">工厂类
<span style="color: #0000ff;">class<span style="color: #000000;"> Factory{
<span style="color: #0000ff;">static <span style="color: #0000ff;">function GetobjectByClassName(<span style="color: #800080;">$class_name<span style="color: #000000;">){
<span style="color: #800080;">$obj1=<span style="color: #0000ff;">new <span style="color: #800080;">$class_name<span style="color: #000000;">();
<span style="color: #0000ff;">return <span style="color: #800080;">$obj1<span style="color: #000000;">;
}
}

<span style="color: #0000ff;">class<span style="color: #000000;"> A{};
<span style="color: #0000ff;">class<span style="color: #000000;"> B{};
<span style="color: #0000ff;">class<span style="color: #000000;"> C{};
<span style="color: #008000;">//<span style="color: #008000;">$F=new Factory();
//$obj1= $F->GetobjectByClassName("A");
<span style="color: #800080;">$obj1= Factory::GetobjectByClassName("A"<span style="color: #000000;">);
<span style="color: #800080;">$obj2= Factory::GetobjectByClassName("A"<span style="color: #000000;">);
<span style="color: #800080;">$obj3= Factory::GetobjectByClassName("B"<span style="color: #000000;">);
<span style="color: #800080;">$obj4= Factory::GetobjectByClassName("C"<span style="color: #000000;">);
<span style="color: #800080;">$obj5= Factory::GetobjectByClassName("A"<span style="color: #000000;">);
<span style="color: #0000ff;">echo "
";<span style="color: #008080;">var_dump(<span style="color: #800080;">$obj1<span style="color: #000000;">);
<span style="color: #0000ff;">echo "
";<span style="color: #008080;">var_dump(<span style="color: #800080;">$obj2<span style="color: #000000;">);
<span style="color: #0000ff;">echo "
";<span style="color: #008080;">var_dump(<span style="color: #800080;">$obj3<span style="color: #000000;">);
<span style="color: #0000ff;">echo "
";<span style="color: #008080;">var_dump(<span style="color: #800080;">$obj4<span style="color: #000000;">);
<span style="color: #0000ff;">echo "
";<span style="color: #008080;">var_dump(<span style="color: #800080;">$obj5<span style="color: #000000;">);

<span style="color: #008000;">/*<span style="color: #008000;">

object(A)#2 (0) { }
object(A)#3 (0) { }
object(B)#4 (0) { }
object(C)#5 (0) { }
object(A)#6 (0) { }

<span style="color: #008000;">*/

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...