-
java 耦合性_软件工程中的耦合性和解耦合性是什么意思?
2021-02-12 19:27:37如何看待耦合取决于你是从什么视角和层次看待一个程序。如果你正在关注的是一个函数或一个类的内部实现,这个粒度就很细。这个时候你关注的可能是如何把函数/类写的漂亮,让它在功能正确的同时又容易理解。你可以...我也来通俗地讲一讲,说的不好请勿喷。
简单概括:耦合就是程序中的一部分跟其他部分之间的关系。解耦合就是把必要的耦合理顺,同时尽量减少不必要的耦合(这一句其实就是高内聚低耦合的通俗解释)。
如何看待耦合取决于你是从什么视角和层次看待一个程序。如果你正在关注的是一个函数或一个类的内部实现,这个粒度就很细。这个时候你关注的可能是如何把函数/类写的漂亮,让它在功能正确的同时又容易理解。你可以通过改善代码的排版、优化算法、将重复的操作封装为一个新的函数、给变量或函数取更有意义的名字等方法来改善它。
这些方法可以说都跟“高内聚低耦合”有关系。改善代码排版:让代码更有代码的样子,让人更容易看清每句代码的作用和意图。合适的名字:如果你给变量取个名字叫variable,从语意上讲它可以存储任意的值,它的模棱两可的名字让人难以分清它和其他代码的关系(与其他部分有了不必要的耦合),这就会让阅读代码的人茫然不知所措。让变量名字更有意义实际上是高内聚的一种体现,即这个变量你是想让它干嘛的,别人一眼就能看出来。提取函数就更不用说了。
如果你正在设计一个模块,你关注的可能是模块中的类和对象,也就是如何让模块中的类和对象之间的关系更加简单和清楚。四人帮的《设计模式》这本书主要就是讲这个的,其中的每一个模式都是想办法降低类和对象之间的耦合性。
那如果你正在设计一个系统呢,你可能就不关心其中的类了(至少一开始不应该关心),你应该将精力集中到这个系统可以分成几个模块、各个模块怎样组合到一起(术语称为“协作”)构成整个系统等问题上。如果你设计的模块还要去关注其他模块的实现细节,那你的系统就太失败了。
所以,不管你的角度如何,关注的层次高低,降低复杂度都是必要的。这就是耦合和解耦合的核心理念。
据说任何比喻都是蹩脚的,但我还是想举一个现实中极其高效与低耦合的例子,那就是军队。一个国家的军队少则数万人,多则数百万人,这么庞大的一个系统,它的效率却是惊人的高。为什么?简单来说这要归功于它的几个行事原则:
纪律严明,令行禁止
不会出现上级发出命令后找不到人执行,或找到人却不愿意做的尴尬情况(很内聚有木有)
命令不跨级
除非特殊情况,否则命令都是通过直接上级传达的,司令很少会单独找小兵做事(每一级在上一级看来都高内聚的,同时连长、班长、团长这些头头充当了本级的一个接口,上一级仅通过接口来向下级发命令)
有人说,如果司令直接找小兵给他做事不是比一级一级传达效率更高吗?no!为什么?原因有几条(注意看,都能跟我们编程时的道理联系上,所以说万物都是想通的)
司令发出的命令通常都是很大的任务,往往要跨越很多部队甚至兵种,如果让司令一个一个通知不是要累死?(高层抽象不应该直接与底层实现耦合)
如果允许任意的跨级下达命令,那就很有可能导致多个上级同时给一个士兵下达不同的命令,那这个士兵不是要累死?(导致系统状态不一致、或分布式系统的忙闲不一等情况)
士兵与直接上级之间的沟通通常是无障碍的,但跨级就难说了。哪个士兵擅长做什么事只有他的直接上级最清楚,跨级下达命令时可能会导致任务完成效率下降、甚至任务无法完成的后果(高层抽象往往难以驾驭底层细节,进而导致使用不当甚至误用)
职能划分明确
部队会按地域、时域、部门、兵种等来划分整个部队的职责,这样一层一层、一块一块地把整个部队分成职责明确的一个个小部分,各个部分相对独立又是一个有机整体,因此想不高效都很难啊。
-
计算机中术语透明性是什么意思?
2014-10-31 12:47:41一、透明性(transparency) ...通常,在计算机系统中,低层次的机器级的概念性结构和功能特性,对高级程序员来说是透明的。 三、透明传输: (1)数据链路层的透明传输 简单的说,透明传输就是发送方发送什么个人理解:
想一想窗户上的玻璃,阳光照射进来,仿佛是直接照射进来的(如果你补知道有窗户的话)。
想一想清澈的水底,我们往地下看,可以看见清澈的鱼儿,仿佛是直接看到(如果水够清澈)
那IT行业中透明性是什么意思呢,意思说 A对B是透明的,意思是说B直接看到的是A,而忽略了B看到A 中的过程。
eg:在QQ聊天中,表面上看QQ1直接与QQ2对话,而实际上是QQ1发送的数据分别通过传输层,网络层,数据链路层,物理层的传输被QQ2接收,QQ实际是与传输层直接对话,然而表面我们把其他各层当作不存在,这就是透明现象
总而言之,我理解的透明意思是说两端互通中的中间步骤对用户来说好像是不存在的
一、透明性(transparency)
定义:在通信网中,不改变信号形式和信息内容的端到端传输。二、透明性现象:
在计算机技术中,一种本来是存在的事物或属性,但从某个角度看似乎不存在,称为透明性现象。通常,在计算机系统中,低层次的机器级的概念性结构和功能特性,对高级程序员来说是透明的。三、透明传输:
(1)数据链路层的透明传输简单的说,透明传输就是发送方发送什么样的数据,不管数据传输过程是如何实现的,接收方将收到什么样的数据。更确切地说,所谓透明传输就是不管所传数据是什么样的比特组合,都应当能够在链路上传送。当所传数据中的比特组合恰巧出现了与某一个控制信息完全一样时,必须采取适当的措施,使接收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输的透明的。
(2)比特流的透明传输TCP/IP结构体系中,物理层是靠比特流来传输的,比特流的透明传输是指实际电路传送后没有发生变化,因此,对于传送比特流来说,由于这个电路并没有对其产生什么影响,因此比特流就“看不见”这个电路。
四、eg:在QQ聊天中,表面上看QQ1直接与QQ2对话,而实际上是QQ1发送的数据分别通过传输层,网络层,数据链路层,物理层的传输被QQ2接收,QQ实际是与传输层直接对话,然而表面我们把其他各层当作不存在,这就是透明现象。
转载自http://blog.sina.com.cn/s/blog_66add70f0100meza.html
-
内容泛化是什么意思_内容为王是什么意思,为什么坚持内容为王
2020-12-16 18:33:01一、内容为王是什么意思内容为王简单说就是提供优质内容,而这些优质内容要求要原创性高,复制粘贴的内容是没有灵魂的。一个网站或者说一个媒介,不管你的界面有多好看、功能多花哨,你的内容...在seo行业,大家都应该听说过内容为王这句话,但是很多人其实并没有对内容为王进行深层次的理解,所以在网站内容建设方面没有引起足够的重视。那么具体内容为王是什么意思,为什么坚持内容为王呢?本文就给大家简单的介绍下。
一、内容为王是什么意思
内容为王简单说就是提供优质内容,而这些优质内容要求要原创性高,复制粘贴的内容是没有灵魂的。一个网站或者说一个媒介,不管你的界面有多好看、功能多花哨,你的内容满足不了用户需求,那你留不住用户,而搜索引擎也不会对你产生青睐,不会给你更多的展现机会。
内容为王大多数人有种错误理解,只要坚持一段时间提供优质内容就行了,这其实是错误的,要持之以恒的做优质内容输出,内容沉淀越多,经过互联网以及搜索引擎的传播后,会让自己的网站或者平台得到质的升华。而不是做到一点效果就开始乱整一通,实际上没有任何意义,只能止步于此。
内容为王要求注重用优质的产品与服务获得合理的营收,以品质论成败而不是以流量论成败。近年来,外卖平台不再免费派送餐食,网约车、共享单车不再盲目打价格战,花钱订阅资讯的人越来越多,知识付费备受追捧……这些趋于理性、趋向“内容为王”的变化,正是网络新经济日益成熟的重要体现。平台对于“内容”的建设不能放任自流,提供的产品和服务,直接关乎平台能否具有长期盈利能力。可以说,“内容为王”始终是吸引用户、扩大流量的硬道理。
“内容为王”也是由消费升级决定的。作为消费市场的一个重要扇面,互联网经济同样面临着创新产品和服务、更好满足消费者需求的现实课题。随着移动互联网的普及,手机等移动端已成为用户获取产品和服务的重要途径,用户为高质量产品服务付费的意愿和能力也在提升。不仅是付费音乐、付费阅读,从百家号、头条号的风靡流行,到一些知识付费平台的不断涌现,正是把握住了人们对美好生活的新期待,企业和平台得以不断开拓市场。用户需要优质内容,平台也需要优质内容来吸引用户,内容创新在消费升级的大背景下,前景广阔、潜力无限。
二、为什么坚持内容为王
写原创内容,不能单单只想让搜索引擎来收录,更要想着这篇内容,这个页面同样也要有一个好的排名,并且这个关键词很有可能会被你的客户是通过搜索引擎而找到这篇文章。并且对你的服务感兴趣,对你的产品感兴趣,从而来购买你的产品或者服务,那么这个时候内容就不是内容,而是一个饵,用户才是鱼,而不是搜索引擎,你的内容不是要搜索引擎上钩而是让你的用户上钩这才是最重要。
正因为如此,我们才要做网站的长尾关键词,正因为如此,我们就要想办法让长尾关键词也要获得好的排名,而不是一味的盯着你的主关键词排名什么时候才能上去,而忽略了更重要的长尾关键词。对于一个新站这更加显的重要。而且长尾关键词也非常容易做上去,带来的流量可能非常非常少,但是慢慢积累也是不忽视的。
尽可能的每篇文章与网站主题是有相关性的,唯一性的,标题包含一个有可能被人用来搜索的关键词。为每个页面建立良好的相互链接,至少出现两次以上这个关键词,并在第一次出现时加粗,为每个页面都做其它页面的友情链接(这是一种策略,自己慢慢体会),还有要足够强的执行力,坚持下去,不要为一时的排名波动而手忙脚乱,而去突然为网站增加很多的内容或者是外链,这样只会适得其反。充分的利用好网站原创内容的价值,才能真正体现内容为王的价值所在。
关于内容为王的问题,本文重点介绍了内容为王是什么意思,以及为什么坚持内容为王。总之来说,内容是网站得以生存发展的根本,如果网站没有内容的支撑,就能获得搜索引擎和用户的青睐,自然也就不能持续发展下去。所以,大家要真正理解内容为王的道理,从用户需求出发,提供优质的内容,真正做到内容为王,让网站收录和关键词排名更加理想。
-
OID是什么意思
2020-07-14 23:38:56OID是什么 在数据库设计中,需要为每一条记录设定key值。key值加上表名,形成了唯一的标志。 在面向对象中,唯一标志的方式是使用OID(Object ID),OID用于标识每一个对象。 正如ORMapping中的描述的那样,OID的...OID是什么
在数据库设计中,需要为每一条记录设定key值。key值加上表名,形成了唯一的标志。
在面向对象中,唯一标志的方式是使用OID(Object ID),OID用于标识每一个对象。正如ORMapping中的描述的那样,OID的唯一性有三种,具体类中对象标识唯一,类层次中对象标识唯一,所有类的对象标识均唯一。所以OID的唯一性策略可以和映射机制结合起来。
在实际中,一般我们都把OID作为数据库中的主键。
简单一点说,OID就是对象的唯一标识。
如何存储OID
OID有几种存储机制:
-
一种是使用自增长字段,但这种方式是由数据库自动控制,虽然方便,但难以对其进行管理,如果需要进行跨数据库的移植,将会成为一个主要问题。
-
另一种存储机制是使用数据库提供的Max函数,在插入新值的时候,先使用Max函数得到新的OID值,再插入数据。这种做法在处理表的键值唯一性时非常有效,但需要对数据库进行短时间的加锁。
-
如果使用键值表的方法对OID进行管理,其基本的思路是:建立一个表,存储了所有表的当前键值,当增加新记录的时候,就从键值表中取出目前的键值,加一作为OID。这种做法的好处是避免对数据表加锁,能够对键值进行集中的控制。在实际的做法中,一般会在内存中对键值进行缓存,以减少键值表上锁带来的性能冲击。使用缓存将会使OID消耗很快,所以在设计OID时需要考虑OID消耗完的情况。
这种方法可能会因为键值表形成一个性能瓶颈,内存缓冲这个办法听上去不错,但是实际不知道怎么操作。因为内存缓冲会带来另外一个问题就是并发同步的问题。
OID是否与业务相关
OID或是数据库主键是否应该与业务相关呢?这是一个非常具有诱惑力的问题。让OID和业务相关,例如,居民的身份证号,这样做能够省不少事。但是要记住一点,任何的业务都有变化的可能性,身份证就从15位变成了18位,你能够保证他不会有其他的变化吗?而且,如果你严格的遵循OID的思路来进行设计,你会发现,正是和业务不相关的OID设计,能够发挥出非常大的优势,不论是在对象的定位、查询、关联、管理上,都非常的严谨和方便。
呵呵,这个问题我一直有点疑惑。毕竟OID维护起来还是一件非常麻烦的事情。欢迎大家讨论。另外一个问题:OID是使用int类型比较好,还是采用varchar类型比较好?varchar类型的一个好处是分级方便,比如01,01001,01002,02,02001,02002,02003等等。
-
-
python的最新版本是什么意思_python是什么意思?
2020-12-17 18:48:26python是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。Python的创始人为荷兰.... -
python是什么意思-python是什么
2020-10-28 20:52:33Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。Python ... -
编程栈是什么意思_Python编程:Python是什么意思?为什么那么多人学?
2020-12-10 11:13:30Python基础Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构... -
python有什么用-python是什么意思?python有什么用?
2020-10-28 21:23:24Python是一种跨平台的计算机程序设计语言。 是一个高层次的结合了解释性...python是什么意思?Python(发音:[ 'paiθ(ə)n; (US) 'paiθɔn ]n.蟒蛇,巨蛇 ),是一种面向对象的解释性的计算机程序设计语言,也是一种功... -
三去一降一补是什么意思.doc
2021-01-19 12:00:24三去一降一补是什么意思 “三去一降一补”是根据提出的供给侧结构性改革提出的。那么,三去一降一补是什么意思。下面小编整理的三去一降一补的解读,大家一起看看吧。三去一降一补是什么意思 “三去一降一补”即去... -
python具体有什么用-python是什么意思?python有什么用?
2020-11-01 12:39:00Python是一种跨平台的计算机程序设计语言。 是一个高层次的结合了解释性...python是什么意思?Python(发音:[ 'paiθ(ə)n; (US) 'paiθɔn ]n.蟒蛇,巨蛇 ),是一种面向对象的解释性的计算机程序设计语言,也是一种功... -
前端的扁平化是什么意思
2018-04-25 06:36:00前端的扁平化是什么意思 扁平化网站设计 扁平化的网站设计主要是指两个方面, 一是指在界面上使用更少的3D效果和装饰性的元素,让网站能够更加突出主题内容; 二是指在网站结构上减少网站目录级数,让网站的结构... -
python中tab键是什么意思
2020-12-17 08:53:40对于程序员来说,其实Tab和空格远远不只是“立场”问题...这也意味着,对于用字符来描述过程的代码来说,极有可能会是决定性的差异。 尤其是对于一门用空格缩进来区分代码层次的语言——Python。 我们来看一段代码。 -
python中文什么意思-python是什么
2020-11-01 12:30:17Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。Python ... -
python中文意思是什么-python是什么
2020-10-29 22:27:04Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。Python ... -
DOM是什么意思-前端入门
2020-06-28 10:50:25DOM就是文件对象模型,通过JavaScript代码对页面进行重构从而增强与页面的交互性 本篇文章将要分享的是有关DOM的含义介绍...DOM是节点的层次结构(或树),其中document节点作为根。 实际上DOM是以面向对象的方式来描述 -
高内聚,低耦合是什么意思?
2020-09-20 14:06:36高内聚,低耦合是什么意思? 相信很多小伙伴经常在学习的过程中听到“高内聚,低耦合”这么一句话,有的人可能听得一头雾水,以前是大概懂那么个意思,没有仔细去发掘,有点模棱两可的感觉。今天查阅了一些资料,... -
M1 M2 是什么意思?M1 M2的增速说明什么问题?
2012-03-07 15:16:01实践中,各国对M0、M1、M2的定义不尽相同,但都是根据流动性的大小来划分的,M0的流动性最强,M1次之,M2的流动性最差。 我国现阶段也是将货币供应量划分为三个层次,其含义分别是: M0:流通中现金,即在银行... -
css两个冒号什么意思
2021-02-11 07:03:22css两个冒号表示伪元素,如“::selection”,伪...与伪类针对特殊状态的元素不同的是,伪元素是对元素中的特定内容进行操作,它所操作的层次比伪类更深了一层,也因此它的动态性比伪类要低得多。 实际上,设计伪元素的 -
mysql neq什么意思_【知识科普】标准中的Eqv、Idt和Neq分别代表什么?
2021-02-07 10:46:41除了标准的分类,分级、层次等问题,一些特殊的英文字符,也许让很多标准化人员产生困惑,接下来,请允许小编花一些时间,跟您详细讲一下,标准中的Idt、Eqv、Neq分别代表什么?在国际导则21中规定的3种采用国际标准... -
python怎么读什么意思-python怎么读?python的含义和读音!
2020-10-29 22:32:18Python是什么?python的中文名称是蟒蛇,中文谐音"派森”或"派粉”。Python是一种计算机程序设计语言。是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本... -
pythons_pythons是什么
2021-01-14 14:52:09pythons是什么?python的意思是巨蛇,大蟒,而pythons就是python的名词复数形式。通常情况下,我们所说的Python是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python的设计具有很强的可读性,... -
python怎么读是啥意思-python怎么读?python的含义和读音!
2020-11-01 12:25:56Python是什么?python的中文名称是蟒蛇,中文谐音“派森”或“派粉”。Python是一种计算机程序设计语言。是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),... -
RESTful API系列 - RESTful API是什么以及其设计要点
2020-10-12 00:51:19REST中文意思是REpresentational(代表性的)State(状态)Transfer(传输),比较拗口,这个概念是Roy fielding提出的一种应用在分布式系统的架构风格。 简单理解,RESTful API就是尽量满足以下六个设计原则来进行... -
kappa一致性检验教程_一致性检验(kappa一致性分析)
2021-01-17 02:32:48但不知道质量一致性检验是什么意思,以及他和型式检验的区别。通常,产品生产时在工艺不变,原材料基本一致的情况下,有些质量指标是基本不变的。因此,在产品生产质量控制中,可以对其中有些指标不做监控。型式检验... -
对持久层、持久性、持久化的讨论
2020-09-22 15:08:54讨论持久层之前,首先讨论一下,这里的层是什么意思? 答:百度百科云,量词。用于重叠、可分出层次的事物:千~饼、三~楼。也就是层次的意思。 然后再讨论持久是什么意思? 持久是相对与瞬时来说的,我认为,这里...
-
程序员必修基础套餐课
-
Windows系统管理
-
DHCP 动态主机配置服务(在Linux环境下,配置单网段或跨网段提)
-
OlioH3-源码
-
二分查找
-
Bad-Charcater:https://jplegacy.github.ioBad-Charcater-源码
-
JMETER 性能测试基础课程
-
微软的软件测试工程师——《微软的软件测试之道》
-
最短路径问题的复习整理(2)
-
MySQL 高可用工具 heartbeat 实战部署详解
-
Jsplumb从入门到实战
-
【Python-随到随学】FLask第二周
-
实现 MySQL 读写分离的利器 mysql-proxy
-
MySQL Router 实现高可用、负载均衡、读写分离
-
项目经理成长之路
-
Docker从入门到精通
-
智能停车场云平台(附vue+SpringBoot前后端项目源码)
-
【Python-随到随学】 FLask第一周
-
MySQL 四类管理日志(详解及高阶配置)
-
数学建模-生物种群模型