zoukankan      html  css  js  c++  java
  • 设计模式(工厂方法)

    工厂方法

    意图:

            定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。

    适用性:

            当一个类不知道它所必须创建的对象的类的时候。

            当一个类希望由它的子类来指定它所创建的对象的时候。

            当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。

    原理图:

    clip_image001

    代码实现:

     1 <?php
     2 /**
     3  * 工厂模式
     4  */
     5 
     6 
     7 
     8 /**
     9  * 抽象产品
    10  */
    11 abstract class food {
    12     private $_name ;
    13     
    14     abstract public function make();
    15 }
    16 
    17 /**
    18  * 实体产品
    19  */
    20 class greens extends food {
    21     public function make() {
    22         echo '我要做greens';
    23     }
    24 }
    25 class bread extends food {
    26     public function make() {
    27         echo '我要做bread';
    28     }
    29 }
    30 
    31 /**
    32  * 抽象工厂
    33  */
    34 abstract class servant {
    35     abstract public function createFood();
    36 }
    37 
    38 /**
    39  * 实体工场
    40  */
    41 class greensFactory extends servant{
    42     public function createFood() {
    43         return new greens();
    44     }
    45 }
    46 
    47 class breadFactory extends servant{
    48     public function createFood () {
    49         return new bread();
    50     }
    51 }

    参考文献:

    http://www.cnblogs.com/zhangchenliang/p/3700820.html

  • 相关阅读:
    清除浮动的原理剖析
    修正IE6不支持position:fixed的bug(转)
    Callbacks vs Events
    垂直属性
    jQuery的事件模型
    Dean-Edward的事件系统实现
    简单的导航栏实现
    弹窗层效果的实现(非jQuery实现)
    rmdir
    mkdir
  • 原文地址:https://www.cnblogs.com/faronl/p/4701874.html
Copyright © 2011-2022 走看看