zoukankan      html  css  js  c++  java
  • 软件开发(js+java开发)的启发

    
    
    发现了个很重要的意义
    1,一个对象,既包含被监听的参数,也包括监听处理本身
    2,基于1的开发模式
    3,在函数中定义监听器

    4,1)高内聚;
    统一面向对象,一个功能一个对象
    不同对象不互相调用,不互相引用彼此
    不同模块放到不同文件中
    操作放到函数或则方法中
    2)低耦合:
    提供参数交互的数据接口
    不应该在自己功能模块中出现其他功能模块代码或则文件的引用
    任何方法或则函数返回对象都应该是数据(对象),而不应该是其他的“功能对象”(或则自己this)

    监听自己this对象的属性,不去耦合非this的对象属性
    整个文件不应该耦合具体的html的id和class

    为什么界面组件开发的难度特别大:
    很多组件之间是平等的(同一层)的关系,但是一个组件发生的改变往往需要其他组件做出相应的操作,这就要求对其他组件相关操作的调用;
    而组件之间本不应该互相调用,而应该由上层调用, 但是由于事件源在各组件中,一旦被触发,相当于同层组件产生了调用,这就导致了:
    各方法调用成“图”状,而非“树”状。

    不能出现:在父层对象没有调用相应方法或则函数的情况下,父层自身的数据遭到改变。(尤其当一个事件产生,数据被自动设置到一个变量中,而不是通过方法调用的方式被设置进变量中,这是不能允许的)

    为了当事件源产生而又不在同层组件中互相调用彼此,而尽可能告知父层:自己发生了什么变法,由父层根据变化去调用其他子层的功能模块:
    这就要求父层监听子层的变化


    对以上研究,作大总结如下(超级心得):
      基于视图(界面)事件的程序开发要求如下:
        分层:
          顶层调用一切子层功能;
          父层调用一切子层功能;
            ----子层不能调用(耦合)父层功能;
            --------根本目的:解耦
        模块:
          任何模块的功能调用只能发生在功能模块内部,不能调用(耦合)其他模块的功能;
            ----高内聚
        监听(两类监听):
          1,界面触发事件:事件源可在任何模块,任何层中产生;与之对应的变量应该发生变化;
          2,变量触发事件:某一个模块中的变量发生赋值行为;应当使界面有所变化;
        数据交换:
          1,界面流向变量
          2,变量流向界面
            ----双方应该同步
        
      解决方法:
        1,代码分为三大块:
          变量:每个功能模块都有对应变量,这个变量保存模块的数据和处理数据的操作(函数或则方法);
          初始化操作:每个功能模块的操作,包括:界面操作和变量操作;操作的目的在于使界面数据和变量数据对应;
          监听:每个功能模块产生事件而执行的调用不能耦合其他层,更不能越级调用父层,可以通过让父层监听子层的变量来实现子层界面事件产生,而父层实时处理;
        2,细则
          变量:必须是对象,对象包含两部分:数据+处理对象内部数据的操作
            不能在对象中的操作中调用(耦合)界面操作(函数/方法)
              在初始化操作时可将相关操作(函数/方法)以变量的形式赋给对象:数据交换操作永远只能出现在初始化操作中。
          初始化操作:就只需实现两类数据交换操作;
          监听:在初始化操作中实现对界面事件的监听;也可以是初始化操作中实现父层对子层变量的监听
            任何情况,都只能是父层监听子层的变量,而不能子层监听父层的变量。
  • 相关阅读:
    webpack打包的项目,如何向项目中注入一个全局变量
    移动端微信H5兼容ios的自动播放音视频
    移动端H5解决键盘弹出时之后滚动位置发生变化的问题
    微信网页开发,如何在H5页面中设置分享的标题,内容以及缩略图
    React实现组件缓存的一种思路
    React编写一个移动H5的纵向翻屏组件
    如何手写一个react项目生成工具,并发布到npm官网
    Puppeteer爬取单页面网站的数据示例
    modelsim中objects窗口为空的解决办法
    Lattice Diamond与modelsim联合仿真环境设置
  • 原文地址:https://www.cnblogs.com/lirenhe/p/14077714.html
Copyright © 2011-2022 走看看