随笔分类 - [25] Refactory
摘要:一、前言 本文主要介绍C# GDI+如何绘制矩行的圆角,其中涉及到如何使用位操作来处理组合的技巧。GDI+的本质在于,它能够替代开发人员实现与显示器及其它外部设备的交互。对于控件美化而言,需要达到自己期望的效果,GDI+必不可少。绘制后的圆角效果图如下:二、圆角枚举与相应组合处理设计对于矩行而言,圆角分为左上角、右上角、左下角和右下角。组合情况就分为无圆角、一个圆角、二个圆角、三个圆角以及四个圆角。枚举需要满足该组合情况,没必要在枚举中将 全部组合列出,只需要通过位操作就能计算出属于哪种组合。枚举类设计如下:1[Flags]2publicenumRoundStyle3{4None=0,5Top
阅读全文
摘要:......废话不多说了,本人是搞Web方向的,C/S不太熟悉,先看界面图(比较粗糙),这里仅仅是从一个视觉的效果来初步显示GC相对应的操作(简单的效果显示,并不是真正的GC内幕,那个我也不懂)基本概念对象的生成过程(newobj指令)1:计算类型(包括基类)所有字段的字节总数2: 字节总数再加上对象开销字段字节数(相加为:对象所需的字节数)。每个对象包含2个开销字段:类型对象指针以及同步块索引。...
阅读全文
摘要:Pull Up Field两个子类中包含重复的常量,为了提高复用性将字段上移到基类中。[代码]提高复用性,如下[代码]Push Down Field基类中的一个字符串字段只被一个子类使用,因此可以进行下移。只要没有其他子类使用基类的字段时,就应该立即执行该重构。[代码]修改后[代码]Rename(method,class,parameter)这个重构只需将名称修改得更具描述性、更容易传达其含义即可...
阅读全文
摘要:重构之Pull up Method 与Push Down Method 上移方法(Pull Up Method)重构是在继承链中,当一个方法被多个实现者使用时,将方法向继承链上层迁移的过程。 修改前代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--...
阅读全文
摘要:重构之Pull up Method 与Push Down Method 上移方法(Pull Up Method)重构是在继承链中,当一个方法被多个实现者使用时,将方法向继承链上层迁移的过程。 修改前代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--...
阅读全文
摘要:重构:Move Method Move Method就是将方法迁移到合适的位置。 条件:当一个方法被其他类使用比在它所在类中的使用还要频繁时,我们就需要将方法迁移到更频繁地使用它的类中(Move Method重构) 范例如下:修改前代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHi...
阅读全文
摘要:重构:Encapsulate Collection 重构是持续改进代码的基础。重构将使我们对单元测试、共享代码以及更可靠的无bug 的代码这些最佳实践得到提高。 Encapsulate Collection条件:当集合的add/remove操作中包含其他的相关逻辑时,以可迭代但不直接在集合上进行操作的方式来向类的使用者隐藏类中的完整集合。 如下所示:使用的对象 Code highlighting...
阅读全文