首頁  >  問答  >  主體

设计模式 - php中,为什么不在construct中写很多逻辑代码?

今天突然想到了这个问题.

大家讲道理大家讲道理2724 天前464

全部回覆(7)我來回復

  • 怪我咯

    怪我咯2017-04-10 16:17:37

    构造器的目的是init,你在里面完全可以用1W行if else 将所有的逻辑都写在里面,但是你怎么快速定位bug?某个逻辑被修改了,你又得横切你的代码。那么oo的意义何在?

    回覆
    0
  • PHPz

    PHPz2017-04-10 16:17:37

    因为构造时一般并不会有复杂逻辑

    回覆
    0
  • 阿神

    阿神2017-04-10 16:17:37

    构造器的目的是init,比如一个必须登录才能看的页面,就可以在构造里判断是否登录了,而不需要在下边的方法里逐个判断,就是说把公用的东西拿到这,可以适当把都需要用到的拿到这里,如果写太多,bug也不好定位

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-10 16:17:37

    PHP的Class的构造方法算是整个PHP面向过程到面向对象变化中波折最多的一个,甚至连方法名都改动过,所以在很多三方库或是开源程序中,很少有大范围使用构造方法的,目的是为了避免兼容性问题和一些不必要的结果。另外,PHP的构造方法甚至不要求必须执行父类构造,我感觉这看上去会破坏程序流程,特别是接入和修改三方的时候。

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-10 16:17:37

    每个函数或者方法代码一般不过超过100行,更何况是初始化!!!

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-10 16:17:37

    代码重构书上普遍都有一个规则好像,
    function 优于 if ··· else
    灵活性高

    回覆
    0
  • 高洛峰

    高洛峰2017-04-10 16:17:37

    语法 习惯 规范 最佳实践 这是一个人代码风格的来源。
    符合语法是最低标准,在构造函数写复杂逻辑是符合语法的。但是不符合规范或者最佳实践。

    回覆
    0
  • 取消回覆