Yii框架模块的意义用途

    2018年12月04日 doc other 字数:327

今天在学习yii框架时关注到了它其中Module概念,

探索了下Module存在的意义以及官方建议如何用

意义

  1. 把相似函数 聚集起来 形成一个名空间 抱成一个模块
  2. 跨项目重用 做为微系统重用 比如用户 评论模块 这些经常每个项目都用的

如何用

  1. 模块间依赖通过接口解耦。基本思想就是模块间引入接口来解耦模块的互相访问,而不是直接粗暴的使用另一个模块内部的功能,所有功能应该在模块边界完成( 通过模块配置注入 , 或者通过模块自身提供接口供别的模块使用)
  2. 把模块看做是一个对象 。对象具有隐藏 、封装 (继承可以先不考虑)特征, 所以对象内部的东西你需要使用公共方法来访问(最好定义接口,接口是契约 是应该长期稳定的东西 ,不应该经常变动 ,如果不提供接口 ,其他模块访问本模块是零散的直接访问。随着时间的变化,这种公共方法会因为需求而变化(比如 参数类型 名称 个数 返回类型 抛出的异常等等 都会变化) 所以有必要先定义接口 这样先使通信协定稳定下来 不要经常变动 。
  3. 在设计模块对外的方法时需要仔细斟酌(模块也有一些是给内部用的属性和方法) 而不是拍脑袋乱写,这也就是 接口即契约的思想–共识达成不到万不得已就不要瞎变 给你提供了一个警戒线)