3.17 Inappropriate Intimacy 狎昵关系
两个类之前过于亲密就容易导致不适当的狎昵关系
更多精彩
- 更多技术博客,请移步 asing1elife’s blog
两个类之间相互调用过多方法
- 使用 7.1 Move Method 迁移方法 和 7.2 Move Field 迁移字段 将被调用的类或字段迁移至调用端
- 使用 8.8 Change Bidirectional Association to Unidirectional 将双向关联改为单向关联 将一个被调用端的方法移至调用端,从而结束相互关联
- 使用 7.3 Extract Class 提炼类 将两个类之间被频繁调用的方法提炼至新类,从而两个类都开始调用该类即可
- 使用 7.5 Hide Delegate 隐藏委托关系 引入一个委托类来传递二者需要的方法
继承往往是造成狎昵关系的主要原因之一
- 使用 11.11 Replace Inheritance with Delegation 以委托取代继承 让该类脱离目前的继承体系
3.17 Inappropriate Intimacy 狎昵关系相关推荐
- 狎昵关系和依恋情结辨诠
Inappropriate Intimacy(狎昵关系) 表现:两个classes过于亲密,花费太多时间去探究彼此的private成分 解决:你可以采用 Move Method 和 Move Fiel ...
- 简单易懂读《重构》 - Inappropriate Intimacy(不合适的亲昵关系)
不合适的亲昵关系 含义: 两个类间互相依赖,总是调用对方的过多属性. 坏处: 代码耦合度高,破坏类的独立性 目标: 把联系过分紧密部分搬移或者建立新类放在其中. 实现方法: 使用Move Method ...
- 21 种代码的坏味道
1.Duplicated Code(重复的代码) 臭味行列中首当其冲的就是Duplicated Code.如果你在一个以上的地点看到相同的程序结构,那么当可肯定:设法将它们合而为一,程序会变得更好. ...
- 代码重构/坏味道详解
推荐本书<重构 改善既有代码的设计> 建议购买正版图书 电子版:http://download.csdn.net/download/sunny_ran/10139470 1.Duplica ...
- 《重构-改善既有代码的设计》读书笔记(二)
12.Lazy Class – 冗赘类 对于几乎没有用的类,运用inline class 将其功能移动.去除这些不值得维护的类. 13.Speculative Generality – 夸夸其谈未来性 ...
- Android 编码规范
一.命名规范 1.1包命名 命名规则:一个唯一包名的前缀总是所有小写ASCII字母而且是一个顶级域名,一般是com,edu,gov,mil,net,org等. 规约:以公司为准.通常是com.公司名. ...
- 表达式必须是可修改的左值怎么解决_如何解决代码腐败的味道
一. Duplicated Code(重复代码) 如果你在一个以上的地点看到相同的程序结构,设法将他们合而为一,程序会变得更好. 同一个类的两个函数含有相同的表达式,采用Extract Method( ...
- 关于提高编程思维与工作效率的总结
这篇blog将一直持续的更新着.(2021.8.2) 工作提效 时间管理大师 利用番茄工作法或类似方法,提高工作专注度,并且需要非常刻意的去练习,虽然这些方法不能适应到所有的情况,但是它们对每天工作的 ...
- 25种代码坏味道总结+优化示例
前言 什么样的代码是好代码呢?好的代码应该命名规范.可读性强.扩展性强.健壮性......而不好的代码又有哪些典型特征呢?这25种代码坏味道大家要注意啦 1. Duplicated Code (重复代 ...
- 重构-改善既有代码的设计:编写代码22宗罪(三)
1 Duplicated Code重复代码 不同的地方出现相同的程序结构: 如果你在一个以上的地点看到相同的程序结构,那么可以肯定:设法将它们和而为一,程序会变得更好.最常见的"重复代码& ...
最新文章
- 第十六届全国大学生智能车竞赛组委会第三次扩大会议
- python查询文件软件_Python小工具--多文件查找字符串fs
- ITK:切割网格CutMesh
- 【Boost】boost库asio详解7——boost::asio::buffer用法
- 搭建Redis服务器
- share-Nothing原理
- 儿童学python下哪个软件好用_【开源软件】超好用的Python学习软件!没有之一!...
- Android 柱状图
- html5 烟雾,jQuery烟雾背景发生器(HTML5 Canvas插件waterpipe.js
- Android实现自定义相册,在Android Gallery App中创建自定义相册
- SAP链接外部数据库的实现方法
- python怎么实现黑客攻击英国_注意!你的隐私就是这样被黑客获取的
- linux lvm界面,Linux使用入门教程之LVM
- 埃尔米特(Hermite)插值及其MATLAB程序
- JavaScript(一)基本语法
- 频率主义(Frequentism)与贝叶斯主义(Bayesianism)的哲学辨异与实践(Python仿真)
- 电影《失控玩家》:软件2.0,让游戏角色“觉醒”了?
- SOFA Weekly | MOSNSOFARPC 发布、社区活动报名
- BufferedRead
- ps切图的零散小知识
热门文章
- 抑郁量表c语言程序,抑郁自评量表(SDS)
- 加个ing是什么意思_ing是什么意思?
- Hive之数据类型、查询操作
- mpp新增一个字段_ormpp--一个很酷的Modern C++ ORM库
- 详解OpenWrt路由器设置Crontab定时检查网络并重启
- 【PC工具】PC好用的迅雷下载版本合集,hash资源下载方法,石皮版迅雷软件去广告优化增强典藏版...
- 省市县及对应编码-json格式
- Android模拟PC键盘输入法,黑科技:用电脑键盘代替手机输入法
- Caused by: ParsingException[Failed to parse object: expecting token of type [START_OBJECT] but found
- 牛客IOI周赛20-普及组