分离、解耦是模块化的基础。概念、功能上的辨异,又是实现分离、解耦的法门。

  • 模块间通信:接口;

    • 模块间绝非各自为营,独立作战;
  • 业务与管理的分离;
    • 数据与控制的分离;

      • 用户面,信令面;
      • 数据链路,控制链路
  • 逻辑与视图分离

    • 逻辑是功能性代码,视图是内容,展示性代码;
    • 视图为逻辑提供get方法,逻辑提供set方法,如下的Android代码:
    public class MainActivity extends AppCompatActivity {@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.hello_world_layout);// R.layout.hello_world_layout 便是界面布局性代码;}
    }

1. 配置代码与业务逻辑(领域代码)

  • Spring 框架下,使用 JavaConfig 进行显式装配的时候,要注意:

    • JavaConfig 与其他的(普通的) Java 代码是不同的,在概念上,它与应用程序中的业务逻辑和领域代码是不同的;

      • JavaConfig 是配置代码,也就有意味着它不应包好任何业务逻辑,JavaConfig 也不应当侵入到逻辑代码中;
    • 尽管不是必须的,通常会将 JavaConfig 放到单独的包中,使它与其他的应用程序在物理层面分离开来,这样对它的意图就不会产生困惑了;

2. 内聚

  • 内聚性的实现:把经常一起变化的部分(联动)放在一起;

3. 生活中的范例

  • 对于小诊所,一般两个工作人员,一个前台看病,开药方,顺便划价收费,一个后台抓药,取药;

    • 等到医院越来越现代化,每天接受的病人越来越多,显然两个人根本应付不过来,此时便会将各自承担的责任分离,将彼此独立的模块置于同一个模块;

      • 导医台
      • 挂号处;
      • 诊室;
      • 划价;收费;
      • 取药;

转载于:https://www.cnblogs.com/mtcnn/p/9421176.html

计算机设计思想 —— 解耦(分离)与内聚相关推荐

  1. 计算机设计思想 —— 总线

    PCI:就是计算机中硬件连接的总线: 主板与外设之间:通过I/O总线与主板相连 1. 总线与交通 对于计算机这种由多个组成部分构成的复杂系统,想要通过一一相连的方式实现彼此间的通信的话,既不现实也浪费 ...

  2. 计算机设计思想 —— 分层模型

    勿在浮沙筑高台. 分层模型中,不同的层次意味着不同的抽象级别: 抽象也是一种凝聚 附庸的附庸不是附庸: 每一层只需考虑与其相邻的上下两层,而无需考虑更高或者更低的层次: 不考虑,也即不关心(仅考虑自身 ...

  3. 计算机设计思想 —— 虚拟化

    物理地址,虚拟地址: 物理地址:如果你的计算机用的是 Intel 的 Pentium 4 的处理器,它是 32 位机器,即计算机地址线有 32 条,物理空间就有 4GB:如果你的计算机只安装了 512 ...

  4. 计算机设计思想 —— 代理(proxy)

    0. 理解 两个说着不同母语国家的人想要交流通话,各人说着各自的母语显然是无法沟通的,此时需要一个翻译,一个媒介(medium).中介,或者一个代理(proxy),比如通用的国际语言英语,比如全世界人 ...

  5. 计算机设计思想 —— 类比、建模与隐喻(同构)

    一切有意义的事物皆有历史,有迹可循.-- <真探> 将知识首先简单划分为已知和未知两个互斥的类别,然而已知和未知之间并非完全地泾渭分明,井水不犯河水.重要的科学发现常常来自 analogy ...

  6. 基于layui的框架模版,采用模块化设计,接口分离,组件化思想

    代码地址如下: http://www.demodashi.com/demo/13362.html 1. 准备工作 编辑器vscode,需要安装liveServer插件在前端开启静态服务器 或者使用hb ...

  7. 计算机设计核心思想,科学网—计算机设计的两种理念,颠覆os的计算机 - 姜咏江的博文...

    计算机设计的两种理念 姜咏江 关于图灵和冯·诺伊曼计算机,我们是否可以总结为图灵的计算机思想由冯·诺伊曼等人具体实现了?不要让计算机历史上那些说不十分清楚的问题,耽误了我们今天的行程. 在计算机体系结 ...

  8. 微型计算机设计思想主要三方面内容,2013浙江省计算机等级考试试题 二级C试题(必备资料)...

    1.在3.5in的软盘上有一个带滑块的小方孔,其作用是( D ) A.进行读写保护设置 B.没有任何作用 C.进行读保护设置 D.进行写保护设置 2.具有多媒体功能的微型计算机系统中,常用的CD-RO ...

  9. 冯洛伊曼计算机工作原理的设计思想是,冯诺依曼计算机工作原理的设计思想是...

    冯诺依曼计算机工作原理的设计思想是 5.下列字符中,ASCII码值最大的是 ( ). A.w B.Z C.A D.9 [答案]A [解析]大家应该记住常用字符的ASCII码值,这样也比较方便平时的学习 ...

最新文章

  1. 饥荒 死亡后不删存档的办法
  2. PHP __compare 魔术方法的实现
  3. NN如何在表格数据中战胜GBDT类模型
  4. 《C语言及程序设计》程序填空——字符数组与字符串处理
  5. Machine Learning 务实----Applying deep learning to real-world problems
  6. 用栈实现中缀表达式求值
  7. idea中 google-java-format 插件的使用
  8. 使用Rider和Emmylua进行UnLua配置
  9. system.Exception:端口已被占用1080
  10. 在 .NET 6 项目中使用 Startup.cs
  11. 信息系统安全等级保护(简称“等保”)
  12. 软件设计师的证书有多少含金量?
  13. linux 桌面环境推荐,8种最佳的Ubuntu桌面环境(18.04 Bionic Beaver Linux)
  14. 【OpenCV图像处理】五、图像的几何变换(下)
  15. 系列报道 | 组织范式“青色组织”兴起:员工骨子里透出愉悦积极气质
  16. kerberos 之TGS_REQ、TGS_REP
  17. 2019年全国大学生电子设计大学(D 题)简易电路特性测试仪(2)基础部分电路与代码
  18. idea中一键生成copyright
  19. 爬虫爬取王者荣耀 英雄故事 和技能
  20. phpstorm学习

热门文章

  1. SS不能在Win7中打开,出现停止运行
  2. django 学习-13 Django文件上传
  3. 在Linux下如何查CC攻击?
  4. 使用js获取select选中文本
  5. oracle 恢复学习 案例1 一个数据文件丢失 完全恢复数据库
  6. 蓝桥杯 ALGO-97 算法训练 排序
  7. bum报文_Vxlan学习笔记——原理
  8. SecureCRT连接Linux显示Mysql记录中文乱码
  9. Shell脚本8种字符串截取方法总结
  10. 解决librdkafka 报WARN:Protocol read buffer underflow