两个类之前过于亲密就容易导致不适当的狎昵关系

更多精彩

  • 更多技术博客,请移步 asing1elife’s blog

两个类之间相互调用过多方法

  1. 使用 7.1 Move Method 迁移方法 和 7.2 Move Field 迁移字段 将被调用的类或字段迁移至调用端
  2. 使用 8.8 Change Bidirectional Association to Unidirectional 将双向关联改为单向关联 将一个被调用端的方法移至调用端,从而结束相互关联
  3. 使用 7.3 Extract Class 提炼类 将两个类之间被频繁调用的方法提炼至新类,从而两个类都开始调用该类即可
  4. 使用 7.5 Hide Delegate 隐藏委托关系 引入一个委托类来传递二者需要的方法

继承往往是造成狎昵关系的主要原因之一

  1. 使用 11.11 Replace Inheritance with Delegation 以委托取代继承 让该类脱离目前的继承体系

3.17 Inappropriate Intimacy 狎昵关系相关推荐

  1. 狎昵关系和依恋情结辨诠

    Inappropriate Intimacy(狎昵关系) 表现:两个classes过于亲密,花费太多时间去探究彼此的private成分 解决:你可以采用 Move Method 和 Move Fiel ...

  2. 简单易懂读《重构》 - Inappropriate Intimacy(不合适的亲昵关系)

    不合适的亲昵关系 含义: 两个类间互相依赖,总是调用对方的过多属性. 坏处: 代码耦合度高,破坏类的独立性 目标: 把联系过分紧密部分搬移或者建立新类放在其中. 实现方法: 使用Move Method ...

  3. 21 种代码的坏味道

    1.Duplicated Code(重复的代码) 臭味行列中首当其冲的就是Duplicated Code.如果你在一个以上的地点看到相同的程序结构,那么当可肯定:设法将它们合而为一,程序会变得更好. ...

  4. 代码重构/坏味道详解

    推荐本书<重构 改善既有代码的设计> 建议购买正版图书 电子版:http://download.csdn.net/download/sunny_ran/10139470 1.Duplica ...

  5. 《重构-改善既有代码的设计》读书笔记(二)

    12.Lazy Class – 冗赘类 对于几乎没有用的类,运用inline class 将其功能移动.去除这些不值得维护的类. 13.Speculative Generality – 夸夸其谈未来性 ...

  6. Android 编码规范

    一.命名规范 1.1包命名 命名规则:一个唯一包名的前缀总是所有小写ASCII字母而且是一个顶级域名,一般是com,edu,gov,mil,net,org等. 规约:以公司为准.通常是com.公司名. ...

  7. 表达式必须是可修改的左值怎么解决_如何解决代码腐败的味道

    一. Duplicated Code(重复代码) 如果你在一个以上的地点看到相同的程序结构,设法将他们合而为一,程序会变得更好. 同一个类的两个函数含有相同的表达式,采用Extract Method( ...

  8. 关于提高编程思维与工作效率的总结

    这篇blog将一直持续的更新着.(2021.8.2) 工作提效 时间管理大师 利用番茄工作法或类似方法,提高工作专注度,并且需要非常刻意的去练习,虽然这些方法不能适应到所有的情况,但是它们对每天工作的 ...

  9. 25种代码坏味道总结+优化示例

    前言 什么样的代码是好代码呢?好的代码应该命名规范.可读性强.扩展性强.健壮性......而不好的代码又有哪些典型特征呢?这25种代码坏味道大家要注意啦 1. Duplicated Code (重复代 ...

  10. 重构-改善既有代码的设计:编写代码22宗罪(三)

    1 Duplicated  Code重复代码 不同的地方出现相同的程序结构: 如果你在一个以上的地点看到相同的程序结构,那么可以肯定:设法将它们和而为一,程序会变得更好.最常见的"重复代码& ...

最新文章

  1. 第十六届全国大学生智能车竞赛组委会第三次扩大会议
  2. python查询文件软件_Python小工具--多文件查找字符串fs
  3. ITK:切割网格CutMesh
  4. 【Boost】boost库asio详解7——boost::asio::buffer用法
  5. 搭建Redis服务器
  6. share-Nothing原理
  7. 儿童学python下哪个软件好用_【开源软件】超好用的Python学习软件!没有之一!...
  8. Android 柱状图
  9. html5 烟雾,jQuery烟雾背景发生器(HTML5 Canvas插件waterpipe.js
  10. Android实现自定义相册,在Android Gallery App中创建自定义相册
  11. SAP链接外部数据库的实现方法
  12. python怎么实现黑客攻击英国_注意!你的隐私就是这样被黑客获取的
  13. linux lvm界面,Linux使用入门教程之LVM
  14. 埃尔米特(Hermite)插值及其MATLAB程序
  15. JavaScript(一)基本语法
  16. 频率主义(Frequentism)与贝叶斯主义(Bayesianism)的哲学辨异与实践(Python仿真)
  17. 电影《失控玩家》:软件2.0,让游戏角色“觉醒”了?
  18. SOFA Weekly | MOSNSOFARPC 发布、社区活动报名
  19. BufferedRead
  20. ps切图的零散小知识

热门文章

  1. 抑郁量表c语言程序,抑郁自评量表(SDS)
  2. 加个ing是什么意思_ing是什么意思?
  3. Hive之数据类型、查询操作
  4. mpp新增一个字段_ormpp--一个很酷的Modern C++ ORM库
  5. 详解OpenWrt路由器设置Crontab定时检查网络并重启
  6. 【PC工具】PC好用的迅雷下载版本合集,hash资源下载方法,石皮版迅雷软件去广告优化增强典藏版...
  7. 省市县及对应编码-json格式
  8. Android模拟PC键盘输入法,黑科技:用电脑键盘代替手机输入法
  9. Caused by: ParsingException[Failed to parse object: expecting token of type [START_OBJECT] but found
  10. 牛客IOI周赛20-普及组