C# Pluggable Object浅析
时间:2014-07-21 07:18 来源: 我爱IT技术网 作者:山风
Pluggable Object其实就是用多型来处理重复的判断条件以图片编辑器为例,在图片上按下鼠标左键并移动鼠标表示拖曳图片移动。而在空白的地方按下左键移动鼠标会出现方框,让你一次选取多张图片。
这个流程如果写成程序,即如下:
- Figure selected;
- public void mouseDown() {
- selected= findFigure();
- if (selected != null)
- select(selected);
- }
- public void mouseMove() {
- if (selected != null)
- move(selected);
- else
- moveSelectionRectangle();
- }
- public void mouseUp() {
- if (selected == null)
- selectAll();
- }
你会发现有许多重复的判断条件,该怎么避免呢?这时候就可以用Pluggable Object。
首先先定义一个Interface叫做SelectionMode,这个Interface会有两个函数分别是mouseMove()以及mouseUp(),并且建立两个class(SingleSelection, MultipleSelection)实做此Interface,分别处理单一选取图片以及多重选取图片。
如此一来整个源代码可以被改写如下:
- SelectionMode mode;
- public void mouseDown() {
- selected = findFigure();
- if (selected != null)
- mode = SingleSelection(selected);
- else
- mode = MultipleSelection();
- }
- public void mouseMove() {
- mode.mouseMove();
- }
- public void mouseUp() {
- mode.mouseUp();
- }
源代码变得干净整洁许多,这就是Pluggable Object的功效。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
