七个设计原理④——层次原理_不同层次的事物的关联性-程序员宅基地

技术标签: 编程的原则  

是什么

层次原理就是在结构上讲究层次。

注意事物的主从关系、前后关系和本末关系等层次关系,整理事物的关联性。

不同层次各司其职,同种处理不跨越多个层次,这一点非常重要。比如执行了获取资源的处理,那么释放资源的处理就要在相同的层次进行。又比如互斥控制的标志位置1和置0的处理要在同一层次进行。

为什么

有明确层次结构的代码能帮助读代码的人抽象理解代码的整体结构,读代码的人可以根据自身需要阅读下一层次的代码,掌握更加详细的信息。

这样一来就可以提高代码的可读性,帮助程序员表达编码意图,降低BUG发生的概率。

怎么做

在编写代码时设计各部分的抽象程度,构建层次结构。保证同一个层次中的所有代码抽象程度相同。

另外,高层次的代码要通过外部视角描述低层次的代码,这样做能让调用低层次代码的高层次代码更加简单易懂。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u012069234/article/details/114640574

智能推荐

Python中出现:RunTimeError:implement_array_function method already has a docstring.异常解决_pandas 1.1.2 numpy 1.18.1 runtimeerror:implement_a-程序员宅基地

文章浏览阅读2w次,点赞2次,收藏2次。QUESTON:Python中出现:RunTimeError:implement_array_function method already has a docstring.异常解决ANSWER:在网上查了一上午,发现写的在我这都没有解决问题,于是我费尽心机自己动手解决。我在cmd命令行将本机上的numpy卸载后,重新安装到最新版本,可能是由于版本与某些库不兼容。Python..._pandas 1.1.2 numpy 1.18.1 runtimeerror:implement_array_function method alrea

Basys3 FPGA 3-8译码器开发及应用_使用vivado设计3线—8线译码器,并在basys 3开发板上实现其功能。 1. 实验程序记录-程序员宅基地

文章浏览阅读2.9k次。实验3 3-8译码器开发及应用实验目的:1 学习 Verilog HDL 基本语法2 巩固 Vivado 2014.2 环境下的 Verilog HDL 编程设计的基础。实验设备: XILINX BASYS3实验步骤:1 打开vivado。2 点create new project 进入新建工程向导3 输入project名称,并选择存储地址,注意_使用vivado设计3线—8线译码器,并在basys 3开发板上实现其功能。 1. 实验程序记录

POJ 3974 Palindrome(Manacher)_palindrome manacher-程序员宅基地

文章浏览阅读560次。PalindromeDescriptionAndy the smart computer science student was attending an algorithms class when the professor asked the students a simple question, "Can you propose an efficient algori_palindrome manacher

安装eclipse时 提示The Eclipse executable launcher was unable to locate its companion (可执行程序无法找到其同伴共享库)-程序员宅基地

文章浏览阅读2w次,点赞6次,收藏25次。操作系统:win7The Eclipse executable launcher was unableto locate its companion shared library译:Eclipse出现可执行程序无法找到其同伴共享库一、打开eclipse目录下的配置文件eclipse.ini。 二、将--launcher.library和-startup下面的路径都改为当前的正确..._the eclipse executable launcher was unable to locate its companion shared li

手机开热点,电脑连,关于两个局域网的问题_电脑和手机不在一个局域网-程序员宅基地

文章浏览阅读1.9w次。针对情况:手机开的4g,开wifi,电脑连手机的热点 原理:电脑会有一个局域网的ip 1.在运行中输入cmd,在dos窗口下输入ipconfig,找到这一行2.测试 : 手机的浏览器上,输入172.20.10.5加上一个端口号去访问你电脑上开启的应用,就可以了。。。(这是手机的浏览器访问电脑的应用,我这里是xBuilder)..._电脑和手机不在一个局域网

VIJOS-P1144 小胖守皇宫(树形dp)_csdn 小胖守皇宫-程序员宅基地

文章浏览阅读1k次。对于每一个节点,有3种状态:自己守自己,被儿子守,被父亲守;每次用儿子更新父节点。设f [st][0]表示被自己守,它的儿子三种状态都可以;f[st][2]表示被父亲守,那么这个节点不能守它的儿子,它的儿子有两种状态:被自己守,被儿子守;f[st][1]表示被儿子守。当儿子的最优状态为自己守自己,这就非常和谐。但儿子的最优状态可能是被它的儿子守啊,这时要加上f[to][0] - f[t_csdn 小胖守皇宫

随便推点

IT人事面试及应对_it面试也是应试-程序员宅基地

文章浏览阅读4.4k次,点赞4次,收藏34次。1、请你自我介绍一下你自己?回答提示:一般人回答这个问题过于平常,只说姓名、年龄、爱好、工作经验,这些在简历上都有。其实,企业最希望知道的是求职者能否胜任工作,包括:最强的技能、最深入研究的知识领域、个性中最积极的部分、做过的最成功的事,主要的成就等,这些都可以和学习无关,也可以和学习有关,但要突出积极的个性和做事的能力,说得合情合理企业才会相信。企业很重视一个人的礼貌,求职者要尊重考官,在回..._it面试也是应试

怎样恢复计算机程序打开文件名,Word提示如何解决使用文本恢复转换器打开文件的问题...-程序员宅基地

文章浏览阅读855次。使用“文本恢复转换器2113”首先打开单词5261(找到任何未损坏的word文档以打开),然后在4102中单击“工具”→“选项1653”→在“常规”选项卡中,找到“打开时确认转换”并选择它,然后单击“确定”退出,然后单击“文件”-“打开”,找到您需要修复的文件,单击选择(请不要双击直接打开它),在右下角有一个“打开”按钮是否找到了黑色的小三角形?在下图中红点的位置。单击它,然后选择“打开并修复”选..._怎么还原文件用计算机程序名称

分享安卓手机里的钢琴键盘模拟器给大家_钢琴键盘模拟器安卓-程序员宅基地

文章浏览阅读1.8k次。安卓手机里的钢琴键盘模拟器,对于我们模拟练习钢琴非常有用。我们先打开手机,然后启动手机桌面上的【钢琴键盘模拟器】今天就和大家分享一下。点 击【钢琴键盘模拟器】的图标,进入可操作界面。这时候会制动跳转到手机横屏界面。我们可以看到在操作界面里有模拟钢琴的黑白键盘。同时在钢琴键盘模拟器的操作界面里,我们点击“加号”“减号”按钮可以调节黑白键盘的大小比例。  可以选择在钢琴键盘模拟器的操作界面里自己录..._钢琴键盘模拟器安卓

英文视频字幕自动生成_生成英文字幕-程序员宅基地

文章浏览阅读9.7k次,点赞5次,收藏25次。笔者正在制作少儿编程教育系列视频,发现有大量的英文视频资料值得学习,但是视频中缺少字幕,可能会对学生的学习过程带来困扰。如果能够得到英文字幕,再通过谷歌翻译等工具的使用,就可以进一步生成中文字幕。因此,开始探索快速生成字幕的方法,本文对实现过程进行记录,笔者的计算机使用的是Windows 10 64位操作系统。注:需要计算机通过某些方法成功访问谷歌!整体流程可划分为:安装Python2下..._生成英文字幕

springboot 与swagger整合出现Unable to infer base url.This is common when using dynamic的解决办法_springboot 集成swagger unable to infer base url. thi-程序员宅基地

文章浏览阅读8.2k次,点赞2次,收藏2次。今天在springboot与swagger整合测试的时候跳出如下所示界面经查资料发现有两种解决办法,1.直接把@EnableSwagger2注解加在主启动类就可以,这样虽然能解决问题,但是这样会扫到使用的框架的接口,这种方法要慎用。2.主启动类加上@ComponentScan("swagger配置类所在包"),以保证配置类被扫描到最后解决问题之后就可以访问 你的配置文..._springboot 集成swagger unable to infer base url. this is common when using d

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/util/POILogFactory-程序员宅基地

文章浏览阅读3.7k次。Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/util/POILogFactoryException in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/util/POILogFactory at org.a..._java.lang.noclassdeffounderror: org/apache/poi/util/poilogfactory

推荐文章

热门文章

相关标签