zoukankan      html  css  js  c++  java
  • 定制化

    以下是对于我这个项目的各种场景的描述,基本覆盖了定制化框架的所有涉及的场景:

    假设有ABCDE五个产品。
      

    1)基于配置实现:

    场景1: 新功能,BCDE有,A没有
    解决方案1:把入口UI屏蔽掉,使用配置文件if else来控制

    场景2: 对某个页面, CDE有相同的UI,AB有些不同,A多一个控件,B少一个控件
    在Core中放相同的Layout,处理所有最全的逻辑
    在ABC中,做一个同名的Layout,修改为自己的UI,分为加、减、改三种:
    场景2_1: A减去控件:因为在Core中Activity会用到减去的R.id,运行时会报找不到这个控件id的错误,所以,需要开关来控制,不走这段逻辑。
    场景2_2: B加上控件button
    一种办法是,在产品B中,继承之前的Activity,使用Hook,替换之;
    另一种办法是(C中实现),copy一份相同package的Activity到Core中,覆盖之前的Activity,这时,这个Activity不需要配置。要注意不要提交copy到core的的代码

    场景2_3(不做新demo了): C修改UI:指的是属性的修改,没有额外的工作。
    修改UI:在具体产品中加新的layout
    修改Activity逻辑:继承+Hook
    结论:尽量做减法

    2)基于AOP实现(稍后推出)
  • 相关阅读:
    关于闭包的一些知识
    浏览器解析JavaScript原理(1)
    函数作用域及函数表达式
    jquery
    前端常用插件
    Git及GitHub
    angular框架
    express
    ES6基础
    Node.js相关总结
  • 原文地址:https://www.cnblogs.com/Jax/p/6511796.html
Copyright © 2011-2022 走看看