• 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 }

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

  • 相关阅读:
    oracle一次插入多条数据
    SQL在in中传入参数类型问题
    斗鱼刷弹幕定时
    在setTimeout 200ms后执行函数发生错误
    Java去除字符串中的空格
    同步与异步
    HTTP请求中GET和POST的区别
    SQL优化
    什么是死锁以及避免死锁
    常用快捷键
  • 原文地址:https://www.cnblogs.com/jami918/p/3614234.html
Copyright © 2020-2023  润新知