会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
IT少年
IT少年
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
5
6
7
8
9
10
···
19
下一页
2016年3月22日
重构第11天 使用策略代替Switch(Switch to Strategy)
摘要: 理解:策略就是平常设计模式中所说的策略模式。因为当你有一个庞大的switch方法的时候,每一次新加一个条件,都要去修改这个方法,这样耦合性太高,不易维护也不易扩展。这样我们就可以使用策略的设计模式,使得每一种情况都封装在自己的类中,来提高扩展性和降低耦合性。 详解: 为了完成switch重构,我们需
阅读全文
posted @ 2016-03-22 21:44 IT少年
阅读(1272)
评论(0)
推荐(1)
2016年3月20日
重构第10天:提取方法(Extract Method)
摘要: 理解:经常写的代码中,有一些计算逻辑比较复杂的方法,写下来一个很长很长的方法,我们可以把这个方法,根据功能,分解成单独的几个小方法。这样做不仅能够增加代码的可维护性,而且增加了易读性。 详解: 重构前代码: 我们看到CalculateGrandTotal方法,里面用到了2个foreach循环,看一下
阅读全文
posted @ 2016-03-20 23:00 IT少年
阅读(2757)
评论(0)
推荐(0)
重构第9天:提取接口(Extract Interface)
摘要: 理解:提取接口的意思是,多于一个类共同使用某个类中的方法或属性,那么我们可以把这些方法和属性提出来,作为一个单独的接口。这样的好处是解除代码间的依赖,降低耦合性。 详解: 先看重构前的代码: RegistrationProcessor 类只使用到了ClassRegistration 类中的Creat
阅读全文
posted @ 2016-03-20 22:47 IT少年
阅读(2133)
评论(0)
推荐(0)
2016年3月19日
重构第8天:使用委托代替继承(Replace Inheritance with Delegation)
摘要: 理解:根本没有父子关系的类中使用继承是不合理的,可以用委派的方式来代替。 详解:我们经常在错误的场景使用继承。继承应该在仅仅有逻辑关系的环境中使用,而很多情况下却被使用在达到方便为目的的环境中。 看下面的代码场景: 在这个例子中,Child并不是一个Sanitation,两者没有直接的逻辑关系。孩子
阅读全文
posted @ 2016-03-19 18:11 IT少年
阅读(1128)
评论(0)
推荐(0)
2016年3月17日
重构第7天 重命名(Rename )
摘要: 理解:重命名就是把一些函数、字段、类、参数的名称 重命名为易于理解,最好是和自身的意义相同的名称。这样更易于理解,也可以减少大量的注释,名字即含义。 详解: 这个重构方法是我经常也是最常用的一种。我们经常给函数、类、字段等命名为一些难以理解,没有实际意义的名称,这样过段时间或者别人看你写的代码的时候
阅读全文
posted @ 2016-03-17 21:50 IT少年
阅读(655)
评论(0)
推荐(0)
对象的深拷贝--反射
摘要: 继续上节的对象深拷贝,上节讲了通过序列化和反序列化来实现深度拷贝,这一节我们来讲述一下第二种深度拷贝的方法,反射。通过反射来实现深度拷贝。 反射主要是在运行时获取对象的元信息,System.Reflection命名空间允许我们在程序运行时来获取对象的信息、创建已存在类的实例,也能够获取对象的属性和执
阅读全文
posted @ 2016-03-17 21:26 IT少年
阅读(1588)
评论(2)
推荐(0)
对象的深拷贝-序列化拷贝
摘要: 简介: System.Object 几乎是所有的类、结构、委托类型的基类。System.Object有一个MemberwiseClone 的方法来帮助我们创建一个当前对象的实例。 存在的问题: System.Object 提供的MemberwiseClone 方法只是对象的浅拷贝,只能把当前对象的非
阅读全文
posted @ 2016-03-17 18:23 IT少年
阅读(2058)
评论(0)
推荐(0)
在自己的对象里实现IEnumerator和IEnumerable
摘要: 平时工作中我们经常用foreach来迭代一个集合。比如 基本所有的集合都能够foreach,但是必须要实现IEnumerable接口。IEnumerable接口很简单,就只有一个IEnumerator GetEnumerator() 方法。看这个方法的定义就知道,仅仅是公开了另一个接口IEnumer
阅读全文
posted @ 2016-03-17 15:13 IT少年
阅读(1113)
评论(0)
推荐(0)
IEnumerable接口
摘要: IEnumerable接口顾名思义就是 可枚举的,可列举的。 接口也很简单,返回一个 枚举器对象 IEnumerator 。 1. IEnumerable 与 IEnumerator IEnumerable只有一个抽象方法:GetEnumerator(),而IEnumerator又是一个迭代器,真正
阅读全文
posted @ 2016-03-17 10:36 IT少年
阅读(861)
评论(0)
推荐(0)
迭代接口的IEnumerator
摘要: 我们经常在工作中用到对List,Dictionary对象的Foreach遍历,取出每一项。 其实这个接口很简单,只有一个属性2个方法。 我通过.NET refelefcor查看源码,看到 有2个方法一个属性。 object Current{get;} 就是反回当前数据, MoveNext()方法就是
阅读全文
posted @ 2016-03-17 10:05 IT少年
阅读(284)
评论(0)
推荐(0)
上一页
1
2
3
4
5
6
7
8
9
10
···
19
下一页
公告