zoukankan      html  css  js  c++  java
  • 模块分析(二)

      对于对象/类的识别有一个需要考虑,就是调度类,在领域模型中是需要有一个调度类,或者说一个Root对象,可以将领域中的对象关联起来;可以是一个调度类性对象,类似于事件分发器;可以是一个根对象,就是通过这个root,可以链式方式,连环调度到所有的对象。

      在当一组对象/类识别出来之后,要设定他们之间的关系,关系主要有两类:所属关系和调用关系;所属关系要搞清楚是聚合,连接(要考虑清楚1:1还是1:*...)以及依赖;对于调用关系,要考虑清楚调用场景;比如一个信道管理对象和TCP的Session管理对象之间;是在信道管理对象创建了一个TCPChannel之后,调用Session管理对象的add消息,来进行Session管理;

      对于跟对象处理就是面向事件的来进行考量;所谓事件,大家可以理解为在经典INPUT-HANDLE-OUTPUT模型中的INPUT的载体,时间有以下五种触发场景(按照流程的生命周期进行排序):

      1. 监听,比如HTTP端口监听,比如TCP端口的监听,触发监听,一般都会触发事件;

      2. 异步处理,比如在NIO处理场景下,TCP发送一个请求,对端将会是异步方式进行相应,那么这个异步相应将会触发事件,这个例子可以归到上面其实也可以,异步其实本质是多线程处理,牵涉到多线程处理,还要对多线程处理结果进行跟踪和处理的,将会触发事件;

      3. 异常,将会触发事件;

      4. 完成,一个事件处理完了,可能会触发完成事件,需要调度类进行后续处理;

      5. 定时任务。

      在做模块和模块设计的时候,尽量少和外部模块交互,尽量通过上游模块以着参数的形式通告(上游可能是在没办法,不得已才会和其他模块交互,上游做牺牲,下游独立),尽量维护其独立性;

  • 相关阅读:
    月薪 30K Java 程序员,需要掌握哪些技术?
    docker-compose安装mongodb
    docker-compose安装apollo服务
    docker-compose安装mysql和redis
    编程总结1:打印沙漏
    秋季学习总结
    对我人生影响最大的三位老师
    自我介绍
    秋季学习总结
    人生路上对我影响最大的三位老师
  • 原文地址:https://www.cnblogs.com/xiashiwendao/p/6804791.html
Copyright © 2011-2022 走看看