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实现(稍后推出)
  • 相关阅读:
    React开发小问题记录
    React 生命周期
    CSS 函数
    React props
    React State 状态
    React 组件 复合组件
    React JSX语法
    js动态创建标签,并设置样式。
    jq 二级筛选切换
    从算法看背包问题(1)
  • 原文地址:https://www.cnblogs.com/Jax/p/6511796.html
Copyright © 2011-2022 走看看