接口重构定理与Open-Close原则

news/2024/7/5 20:57:31
 
接口重构定理与 Open-Close 原则
 
相关文章链接: 模块分解原理探索
                        模块分解原理与三权分立
                        接口关系稳定原理探索
                       接口设计定理
 
前几篇文章讲过了模块分解原理及接口关系稳定原理,并由模块分解原理和接口关系稳定原理推导出了一个接口设计定理,这篇文章中主要讲一个接口重构方面的定理。
 
Martin Fowler在《重构-改善既有代码的设计》一书里讲述了许多重构方面的方法和技巧,不过许多方法都需要修改原有代码,有没有一种不需要修改原有代码的重构方法呢?即能不能在符合Open-Close原则下进行重构呢?下面给出一条与之相关的接口重构定理:
 
接口重构定理 :当系统中的新增需求使用对应专业领域的最优接口集合的子集来实现时,原有接口的实现可以不做任何修改。
 
       这个定理的意思很容易理解,新增需求所需的最优接口集合的子集如果在已有实现中存在时,那么可以直接复用它,否则需要写新代码来实现新的接口,总之原有代码可以不做修改。接口重构定理指出了一种符合Open-Close原则的重构方式。
 
       按照接口重构定理来进行重构,如果原有实现不是按照最优接口集合子集来进行设计,那么同一模块内,新的接口和已有实现间可能会存在重复的代码,解决的方法是将已有的接口改造成最优接口集合的子集,这样才能消除掉重复代码,另外由接口设计定理知道,系统将朝着稳定系统方向靠近。
 
       通过接口重构定理可以知道,重构问题很大一部分变成了最优接口集合设计问题。只要知道如何设计最优接口集合,重构就变得简单起来,当然重构时还要遵循 模块分解原理和 接口关系稳定原理。
 
 
 



http://www.niftyadmin.cn/n/3657773.html

相关文章

cvpr2019 reid

Oral: Joint Discriminative and Generative Learning for Person Re-identification. Zhedong Zheng; Xiaodong Yang; Zhiding Yu; Liang Zheng ; Yi Yang ; Jan Kautz https://arxiv.org/abs/1904.07223 代码:https://github.com/NVlabs/DG-Net https://zhuanl…

称球问题的测试解法

称球问题十几年前就在深圳的一网情深BBS上成为热门问题,此后的十余年间不断有人提起此问题,前段时间还在网上看到有人重新提起此问题,已经成为了新网民的入门级必知必会问题之一。称球问题一般会有以下3种情况:1、M个球&#xff0…

多核编程中的任务分组竞争模式

多核编程中的任务分组竞争模式在多核编程中,锁竞争导致的CPU饥饿现象是引起多核CPU性能无法发挥的最重要原因之一,在多核编程中的锁竞争难题一文中已经讲过锁竞争对性能的影响,如何消解锁竞争导致的CPU饥饿现象成了迫切需要解决的问题。目前业…

多核编程中的任务随机竞争模式的概率分析

多核编程中的任务随机竞争模式的概率分析前一篇多核编程中的任务分组竞争模式中谈到了让任务分组竞争以解决多核CPU遇到的锁竞争导致的饥饿问题。但是并不是任意的共享数据都能够设计成进行分组竞争的模式,比如最常用的需要用于查找的数据结构,当数据结构…

向github上传代码

(1)git init (2)git add . (3)git commit -m jvj (4)git remote add origin https://github.com/t20134297/file_arrange.git 如果出现错误: fatal: remote origin already exists 则执行以下语句: git remote rm origin 再执行git remote add…

OpenMP创建线程中的锁及原子操作性能比较

OpenMP创建线程中的锁及原子操作性能比较相关文档连接:多核编程中的任务随机竞争模式的概率分析 多核编程中的任务分组竞争模式 多核编程中的负载平衡难题 多核编程中的锁竞争难题 多核编程的几个难题及其应对策略(难题一)OpenMP并…

多核新观念-象使用内存一样使用CPU?

多核新观念-象使用内存一样使用CPU?多核时代,很重要的一点就是要将多个CPU核同时运转起来,提高CPU的利用率,说得专业一点就是要提高多核CPU的加速比系数。但是并不是任何时候都可以同时将多个核运转起来,比…

多核系统中三种典型锁竞争的加速比分析

多核系统中三种典型锁竞争的加速比分析目录1.1 引言... 11.2 任务粒度因子与锁粒度因子... 21.3 固定式锁竞争中的加速比分析... 31.4 随机锁竞争中的加速比分析... 31.5 分布式锁竞争的加速比分析... 41.6 结论... 51.7 参考文献&#xff…