会员
周边
众包
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
关注我
keepfool
每个人都会碰到很多难题,想要解开这些难题,就必须专心地做下去,就需要最疯狂的那股痴劲儿,但这种痴却不是山一般压在你肩上的重量,而是你内心深处最向往的那些喜悦。
博客园
首页
联系
管理
随笔 - 62
文章 - 0
评论 - 1288
阅读 -
87万
上一页
1
2
3
4
5
6
7
下一页
2016年5月13日
小酌重构系列[11]——提取基类、提取子类、合并子类
摘要:
继承是面向对象中的一个概念,在小酌重构系列[7]——使用委派代替继承这篇文章中,我“父子关系”描述了继承,这是一种比较片面的说法。后来我又在UML类图的6大关系,描述了继承是一种“is a kind of”关系,它更偏向于概念层次,这种解释更契合继承的本质。本篇要讲的3个重构策略提取基类、提取子类、合并子类都是和继承相关的,如果大家对继承的理解已经足够深刻了,这3个策略用起来应该会得心应手。
阅读全文
posted @ 2016-05-13 01:28 keepfool
阅读(1871)
评论(3)
推荐(14)
编辑
2016年5月12日
小酌重构系列[10]——分离职责
摘要:
“分离职责”是经常使用的一个重构策略,当一个类担任的职责太多时,应按职责将它拆分成多个类,每个类分别承担“单一”的职责,也就是让每个类专心地做“一件事情”。就一个类而言,应该仅有一个引起它变化的原因,这是所谓的SRP原则。本篇文章基于SRP原则展开描述了SRP原则的定义,为什么要遵循SRP原则,以及实践SRP原则的难点。最后,我们通过一则示例来说明“分离职责”这个重构策略。
阅读全文
posted @ 2016-05-12 00:12 keepfool
阅读(1642)
评论(3)
推荐(8)
编辑
2016年5月9日
小酌重构系列[9]——分解依赖
摘要:
单元测试是针对代码单元的“独立”测试,编写单元测试有助于改善代码的质量。在编写单元测试时,难免有一些功能是依赖于其他代码的。通常我们只想测试这些功能本身,而不想测试它所依赖的代码。“依赖的代码”是编写单元测试时的一个难题,我们可以通过2种方式来解决这个问题:Mock依赖的代码和分解依赖。然而Mock不是万能的,我们不能在单元测试中Mock静态类,但是通过“分解依赖”可以解决这个问题,本文将通过一个示例来演示这2种方式。
阅读全文
posted @ 2016-05-09 23:31 keepfool
阅读(1375)
评论(0)
推荐(7)
编辑
2016年5月8日
小酌重构系列[8]——提取接口
摘要:
世间唯一“不变”的是“变化”本身,这句话同样适用于软件设计和开发。 在软件系统中,模块(类、方法)应该依赖于抽象,而不应该依赖于实现。 当需求发生“变化”时,如果模块(类、方法)依赖于具体实现,具体实现也需要修改; 如果模块(类、方法)依赖于接口,则无需修改现有实现,而是基于接口扩展新的实现。本篇首先介绍了面向接口以及开闭原则的概念,然后提到了“提取接口”这个重构策略,并用一个示例展示了这个重构策略。
阅读全文
posted @ 2016-05-08 23:09 keepfool
阅读(1693)
评论(11)
推荐(10)
编辑
UML类图的6大关系
摘要:
UML类图用于展现一组对象、接口、协作和它们之间的关系。类图描述的是一种静态关系,在系统的整个生命周期都是有效的,是面向对象系统的建模中最常见的图。UML一共包含6大关系,它们分别是Inheritance(继承)、Implementation(实现)、Dependency(依赖)、Association(关联)、Aggretation(聚合)和Composition(组合)。在这6大关系中,依赖、关联、聚合和组合是比较容易混淆的,我也会讲解它们之间的区别。
阅读全文
posted @ 2016-05-08 13:11 keepfool
阅读(6896)
评论(9)
推荐(15)
编辑
2016年5月7日
小酌重构系列[7]——使用委派代替继承
摘要:
子类可以继承父类的字段、属性和方法,使用“继承”可以较大程度地复用代码。 在使用继承时,务必要确定代码中定义的“父类”和“子类”确实存在客观的“父子关系”,而不要去做“为了代码复用而使用继承”的事情,这是舍本逐末的做法,也是滥用继承的体现。 滥用继承会破坏类之间客观存在的关系,也会模糊代码所体现的语义。
阅读全文
posted @ 2016-05-07 09:32 keepfool
阅读(2594)
评论(9)
推荐(9)
编辑
2016年5月4日
小酌重构系列[6]——引入参数对象
摘要:
如果方法有超过3个以上的参数,调用方法时就会显得冗词赘句。这时将多个参数封装成一个对象,调用方法会显得干净整洁。 这就是本文要讲的重构策略“引入参数对象”——将方法的参数封为类,并用这个类的对象替换方法中原有的参数。另外,在一些应用场景中,当方法拥有很多参数,且这些参数表示不同的意义时,“参数对象”的命名就成了一个难题,我们可以用一种偷懒的做法,将参数对象命名为“xxxContet”,即“xxx上下文”。
阅读全文
posted @ 2016-05-04 23:58 keepfool
阅读(1379)
评论(10)
推荐(7)
编辑
2016年5月3日
小酌重构系列[5]——为布尔方法命名
摘要:
当一个方法包含大量的布尔参数时,方法是很脆弱的,由此还可能会产生两个问题: 1. 方法不容易被理解 2. 给方法的使用者造成一定困扰,可能会产生一些预期之外的结果 本文要介绍的重构策略“为布尔方法命名”,可以有效地避开这两个问题。
阅读全文
posted @ 2016-05-03 22:55 keepfool
阅读(1957)
评论(5)
推荐(15)
编辑
2016年5月2日
小酌重构系列[4]——分解方法
摘要:
“分解方法”的思想和前面讲到的“提取方法”、“提取方法对象”基本一致。 它是将较大个体的方法不断的拆分,让每个“方法”做单一的事情,从而提高每个方法的可读性和可维护性。 分解方法可以看做是“提取方法”的递归版本,它是对方法反复提炼的一种重构策略。
阅读全文
posted @ 2016-05-02 23:38 keepfool
阅读(1431)
评论(3)
推荐(9)
编辑
2016年5月1日
小酌重构系列[3]——方法、字段的提升和降低
摘要:
本文要介绍的是4种重构策略,它们分别是提升方法、降低方法、提升字段和降低字段。在使用这4种重构策略之前,我觉得有必要先介绍一个重要的概念——语义。语义可以简单地看作是数据对应的现实世界中的事物所代表的概念和含义,以及这些含义直接的关系,是数据在某个领域上的解释和逻辑表示。语义具有领域特征,不属于任何领域的语义是不存在的。接下来,我将通过示例来描述这4种示例。
阅读全文
posted @ 2016-05-01 22:17 keepfool
阅读(1470)
评论(2)
推荐(7)
编辑
上一页
1
2
3
4
5
6
7
下一页
公告
昵称:
keepfool
园龄:
13年4个月
荣誉:
推荐博客
粉丝:
1956
关注:
12
+加关注
最新随笔
1.Vue.js——vue-router 60分钟快速入门
2.Vue.js——60分钟webpack项目模板快速入门
3.Vue.js——60分钟browserify项目模板快速入门
4.Vue.js——使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用
5.Vue.js——vue-resource全攻略
6.Vue.js——基于$.ajax实现数据的跨域增删查改
7.Vue.js——60分钟组件快速入门(下篇)
8.Vue.js——60分钟组件快速入门(上篇)
9.Vue.js——60分钟快速入门
10.酷酷的CSS3三角形运用
积分与排名
积分 - 161439
排名 - 8350
随笔分类
(49)
【1】ASP.NET Dev(4)
【2】jQuery & ASP.NET(3)
【3】Web前端开发(3)
【4】PHP&Mysql(2)
【5】Sql Training(3)
【6】代码重构(19)
【7】玩转JavaScript OOP(5)
【8】玩转CSS3(1)
【9】Vue.js开发(9)
阅读排行榜
1. Vue.js——60分钟快速入门(198519)
2. Vue.js——vue-resource全攻略(106404)
3. Vue.js——vue-router 60分钟快速入门(86493)
4. Vue.js——60分钟组件快速入门(上篇)(76247)
5. Vue.js——60分钟组件快速入门(下篇)(53122)
6. Vue.js——60分钟webpack项目模板快速入门(37044)
7. Vue.js——基于$.ajax实现数据的跨域增删查改(33033)
8. SQL开发利器SQL Prompt 5.1完全破解+使用教程(29450)
9. Vue.js——使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用(28166)
10. jQuery选择器大全(48个代码片段+21幅图演示)(23024)
评论排行榜
1. Vue.js——60分钟快速入门(155)
2. SQL开发利器SQL Prompt 5.1完全破解+使用教程(112)
3. Vue.js——60分钟组件快速入门(下篇)(108)
4. Vue.js——vue-router 60分钟快速入门(96)
5. Vue.js——60分钟组件快速入门(上篇)(90)
6. Vue.js——vue-resource全攻略(74)
7. Vue.js——基于$.ajax实现数据的跨域增删查改(62)
8. Vue.js——使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用(49)
9. jQuery选择器大全(48个代码片段+21幅图演示)(44)
10. 细说jquery ui和jqgrid的ASP.NET实现(40)
推荐排行榜
1. Vue.js——60分钟快速入门(547)
2. Vue.js——60分钟组件快速入门(上篇)(352)
3. Vue.js——60分钟组件快速入门(下篇)(253)
4. Vue.js——vue-router 60分钟快速入门(193)
5. Vue.js——vue-resource全攻略(163)
最新评论
1. Re:Vue.js——60分钟快速入门
写得很好,不得不赞
--monkey's
2. Re:Vue.js——60分钟快速入门
测试demo的时候发现删除按钮一直报错: <td :class="'text-center'"><button @click="deletePerson($index)">Delete</button...
--锵锵qiang
3. Re:Vue.js——60分钟快速入门
不得不说写的真好
--Jsonring
4. Re:Vue.js——60分钟快速入门
v-for 遍历整数,n是从1开始的吧?
--spuerdaddy
5. Re:Vue.js——60分钟快速入门
写得很好,不得不赞
--巴拉比巴拉
6. Re:Vue.js——vue-resource全攻略
顶一下
--S号口袋怪
7. Re:PHP导入Excel数据
分享一个功能丰富、兼容性好、高性能的专业 Excel 文档基础库 Excelize: 文档官网 : 技术交流 QQ 群: 207895940 DingTalk 钉钉群: 30047129...
--xurime
8. Re:Vue.js——60分钟快速入门
@vervin vue-admin-beautiful成为全网首家发布vue3.0版本的admin框架 开源地址: 演示地址: pro演示地址: vue3.0版演示地址:...
--goodLuck5024
9. Re:Vue.js——60分钟组件快速入门(上篇)
感觉有些东西稍微有点老,希望博主能抽空更新下。vue2.6 的就行
--校长的哲学
10. Re:Vue.js——vue-resource全攻略
支持
--笨笨蛋蛋
点击右上角即可分享