低耦合高内聚 - 不要把所有东西都放在 vuex中
我就举一个例子。比如,我想看电视,是否需要遥控器??请认真思考这个问题。
看似电视与“我”已经解耦了。然而,我需要通过遥控器去看电视,我的目的是看电视,但是我却需要依赖遥控器这个中间件。这就变相地将“我”与电视的依赖关系,变成了我与遥控器的依赖关系。虽然“我”与电视解耦了,但是“我”与遥控器却紧密联系在一起。
那么回到最初的问题,我的目的是看电视。我是否一定需要与电视解耦呢?答案是不一定!以此为基础,你可能会发明一个人可以直接控制电视的技术。
那么回顾历史。在智能手机终端发明之前,有一个阶段,人们使用触摸笔去控制手机。这是一个什么概念呢?“我”与手机之间的依赖变成“我”与“触摸笔“之间的依赖。看似我与手机解耦了,但是”我“与”触摸笔“之间却高度耦合在一起。同样,回到最初的目的,我是否需要与手机解耦呢?或者说我是否需要一个触摸笔呢?历史已经给出了答案,那就是多点触控。
在vue 项目中,我发现有些人频繁使用 vuex这个状态管理中间件。确实,它将事件与数据之间互相解耦,使得业务逻辑变得清晰。但是某些情况下,如果一味地依赖 vuex,实际上会让事情变得非常糟糕。就好像我想要打开电灯,但是我却要打开(依赖)一系列的开关,明明一个响指就能解决的问题(如果装了声控的话)。
低耦合高内聚 - 不要把所有东西都放在 vuex中的更多相关文章
- C# 低耦合 高内聚
低耦合 loosely Coupling 松散的耦合关系=炮友 couple=夫妻 夫妻=法律约束.家庭.生活.财产.繁衍 炮友:吃喝玩乐,不会产生感情方面的依赖 内聚性 内聚性又称块内联 ...
- Java面向接口编程,低耦合高内聚的设计哲学
接口体现的是一种规范和实现分离的设计哲学,充分利用接口可以极大的降低程序中各个模块之间的耦合,提高系统的可维护性以及可扩展性. 因此,很多的软件架构设计理念都倡导"面向接口编程"而 ...
- 面系那个对象开发原则.高内聚.低耦合+Python安装详细教程+print输出带颜色的方法
面系那个对象开发原则.高内聚.低耦合 软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准.划分摸块的一个准则就是高内聚低耦合. 这是软件工程中的概念,是判断设计好坏的标准,主要是面向OO的设计, ...
- 如何理解低耦合AND高内聚?[转]
1.高内聚 首先我们来看看内聚的含义:软件含义上的内聚其实是从化学中的分子的内聚演变过来的,化学中的分子间的作用力,作用力强则表现为内聚程度高.在软件中内聚程度的高低,标识着软件设计的好坏. 我们在进 ...
- Java编码思想之什么是高内聚低耦合?
分别描述的是模块内部特征,和模块外部引用关系. 内聚就是一个模块内各个元素彼此结合的紧密程度,高内聚就是一个模块内各个元素彼此结合的紧密程度高. 内聚是就其中任何一个模块的内部特征而言的. 耦合是就多 ...
- Office之什么是高内聚低耦合
---恢复内容开始--- 高内聚低耦合,是软件工程中的概念,是判断设计好坏的标准,主要是面向对象的设计,主要是看类的内聚性是否高,耦合度是否低. 粗劣的说就指的是:单独模块间有着强大的凝聚力,不同的模 ...
- 模块内高内聚?模块间低耦合?MVC+EF演示给你看!
前言 在软件项目开发过程中,我们总能听见“高内聚,低耦合”,即使这种思想在我们学习编程的过程中就已经耳濡目染.可一旦当我们上项目,赶进度的时候我们就会“偷懒”,能省时间就省.管他什么设计模式,什么软件 ...
- Java学习之浅析高内聚低耦合
•前言 如果你涉及软件开发,可能会经常听到 "高内聚,低耦合" 这种概念型词语. 可是,何为 "高内聚,低耦合" 呢? •概念 "高内聚,低耦合&qu ...
- 如何设计一个高内聚低耦合的模块——MegEngine 中自定义 Op 系统的实践经验
作者:褚超群 | 旷视科技 MegEngine 架构师 背景介绍 在算法研究的过程中,算法同学们可能经常会尝试定义各种新的神经网络层(neural network layer),比如 Layer No ...
随机推荐
- Redis 常用监控信息命令总结
查看启动到当前处理命令总数: # redis-cli info stats | grep total_commands total_commands_processed:23693286991 查看每 ...
- KVM虚拟化管理 virt manager常用操作
部分涉及到Linux.Nginx.tomcat.MySQL等的点滴操作记录,时间长了,就忘掉了,偶尔整理一下操作的history,就此简要备份一下: [原][BG]-一次虚拟化环境实践简要记录: ht ...
- linux修改目录为可读写
发布到linux上遇到的问题, 上传目录没有写入权限 新建目录 mkdir /guangkuo/html/portal/images/upload 改为可读写 chmod -R a+w /guangk ...
- Spark机器学习(11):协同过滤算法
协同过滤(Collaborative Filtering,CF)算法是一种常用的推荐算法,它的思想就是找出相似的用户或产品,向用户推荐相似的物品,或者把物品推荐给相似的用户.怎样评价用户对商品的偏好? ...
- python2判断编码格式
def getCoding(strInput): ''' 获取编码格式 ''' if isinstance(strInput, unicode): return "unicode" ...
- 监控JVM内存使用情况,剩余空间小于2M时报警
一个简单的类,用来监控JVM内存使用情况,剩余空间小于2M时报警. import java.lang.management.ManagementFactory; import java.lang.ma ...
- java的impl
java impl 是一个资源包,用来存放java文件的. 在Java开发中,通常将后台分成几层,常见的是三层mvc:model.view.controller,模型视图控制层三层,而impl通常处于 ...
- grep与孪生兄弟egrep差异
egrep是对grep的功能扩展,让其支持正则更加完美! #grep与egrep不同 egrep完全支持正则 ls |grep -i '[a-z]\{3\}' === ls |egrep -i ...
- 【Android】Android传感器
1.加速度传感器2.磁场传感器3.方向传感器4.陀螺仪传感器5.重力传感器6.线性加速度传感器7.温度传感器8.光线传感器9.距离传感器10.压力传感器11.计步传感器 首先先查看测试的安卓机拥有的传 ...
- Java list对象列表排序 实例
package com.test; public class Bean { private String name; private int priority; public String getNa ...