• php抽象工厂模式的研究


    上一节理解了工厂模式。其代码原理如下:

    <?php
    
    abstract class ApptEncoder{
        abstract function encode();
    }
    
    class BloggsApptEncoder extends ApptEncoder{
        function encode(){
            return "data encode farmat";
        }
    }
    
    abstract class CommsManager{
        abstract function getHeaderText();
        abstract function getApptEncoder();
        abstract function getFootText();
    }
    
    class BloggsCommsManager extends CommsManager{
        function getHeaderText(){
            return "header";
        }
        function getApptEncoder(){
            return new BloggsApptEncoder();
        }
        function getFooterText(){
            return "footer";
        }
    }

    然后抽象工厂模式只是在工厂模式基础上进行升级,具体如下:

     1 <?php
     2 
     abstract class ApptEncoder{
         abstract function encode();
     }
     
     7 class BloggsApptEncoder extends ApptEncoder{
     8     function encode(){
     9         return "data encode format appt";
    10     }
    11 }
    12 

      abstract class TdcEncoder{
        
    abstract function encode();
    }
    13 class BloggsTdcEncoder extends TdcEncoder{ 14 function encode(){ 15 return "data encode format tdc"; 16 } 17 } 18
      abstract class ConEncoder{  
        
    abstract function encode();
    } 19 class BloggsConEncoder extends ConEncoder{ 20 function encode(){ 21 return "data encode format con"; 22 } 23 } 24 25 26 abstract class CommsManager{ 27 abstract function getHeaderText(); 28 abstract function getApptEncoder(); 29 abstract function getFootText(); 30 31 abstract function getTdcEncoder(); 32 abstract function getConEncoder(); 33 } 34 35 class BloggsCommsManager extends CommsManager{ 36 function getHeaderText(){ 37 return "header"; 38 } 39 function getApptEncoder(){ 40 return new BloggsApptEncoder(); 41 } 42 function getFooterText(){ 43 return "footer"; 44 } 45 46 47 function getTdcEncoder(){ 48 return new BloggsTdcEncoder(); 49 } 50 51 function getConEncoder(){ 52 return new BloggsConEncoder(); 53 } 54 }

    具体原理就是在工厂模式上的扩展和分支吧

  • 相关阅读:
    Jquery EasyUI tabs处理
    C# ToString格式控制符
    SQL删除重复数据,保留一条
    stm32f4xx 的IWDG使用的一般步骤
    stm32f4xx 的EXTI使用的一般步骤
    STM32F4xx---EXTI 外部中断
    数组和指针 到 存储类(1)
    uCosII 从 OSStart开始到思维定势··········
    《C和指针》一书介绍操作符优先级
    OSTimeTick()函数解析
  • 原文地址:https://www.cnblogs.com/jami918/p/3614234.html
Copyright © 2020-2023  润新知