﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-般若菩提（丁丁）</title><link>http://www.cnblogs.com/xdingding/</link><description /><language>zh-cn</language><lastBuildDate>Wed, 10 Feb 2010 09:49:30 GMT</lastBuildDate><pubDate>Wed, 10 Feb 2010 09:49:30 GMT</pubDate><ttl>60</ttl><item><title>GEF源码分析（六） GEF 的EditPart的职能分离 __ 跨国时尚媒体集团广告部门 的故事 二</title><link>http://www.cnblogs.com/xdingding/archive/2005/12/07/292516.html</link><dc:creator>般若菩提</dc:creator><author>般若菩提</author><pubDate>Wed, 07 Dec 2005 06:14:00 GMT</pubDate><guid>http://www.cnblogs.com/xdingding/archive/2005/12/07/292516.html</guid><description><![CDATA[<p>阅读: 4244 评论: 4 作者: <a href="http://www.cnblogs.com/xdingding/" target="_blank">般若菩提</a> 发表于 2005-12-07 14:14 <a href="http://www.cnblogs.com/xdingding/archive/2005/12/07/292516.html" target="_blank">原文链接</a></p>&nbsp;<BR>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; mso-outline-level: 1"><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">GEF源码分析（六） GEF 的EditPart的职能分离 __ 跨国时尚媒体集团广告部门 的故事 二<BR><BR>GraphicalEditPart先生当天安排了部门及会议计划。经过</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">EditPart</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">部门紧张有奏的准备会议讨论的资料，第三天、按时</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">8:30</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">开会。<BR></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR>GraphicalEditPart</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">先生还如往常，准时提前</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">5</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">分钟坐在会议室前边角上。他喜欢部门的小伙子们，虽然这些小伙子们做事情时常有些不周，但是他更欣赏他们的活力和富有创造激情。所以、每每开会时，他更愿坐在旁边听这些小伙子们的意见，&#8220;相比较当个威武的军队长官，我更意是一个严格又和蔼的优秀教练&#8221;</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">GraphicalEditPart</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">先生常常如此提醒自己不要越俎代庖。</SPAN></P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; mso-outline-level: 1"><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">部门干将小李主持会议，简短阐明会议主题和要求后，（为了提高会议效率会议每人最多</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">5</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">分钟发言，最后</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">20</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">分钟讨论时间，</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">5</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">分钟</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">GraphicalEditPart</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">先生做总结）。</SPAN></P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; mso-outline-level: 1"><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">小王首先站起发言：&#8220;目前我们</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">EditPart</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">部门，虽然，主要任务有明确定义，但是内部的工作流程不明确，没有可依章程。</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">...</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">&#8221;。</SPAN></P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; mso-outline-level: 1"><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">&#8220;是呀，公司目前还没有我们部门的标准操作手册，很多问题都有很大随机性，工作的好坏过于依赖人员本身的工作能力，这十分不利于人员的内部流动以及新人员的补充&#8221;我们的</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">GraphicalEditPart"</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">教练</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">"</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">满意的点点头。</SPAN></P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">小魏起来补充一下：&#8220;由于我们内部每个人的做事方法，都是各有一套绝活，流程不一致，经常导致在工作对上下层通知协作出现问题。在水平部门沟通时，也常常不流畅&#8221;。这是个大学刚毕业十分活泼的小姑娘。</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; mso-outline-level: 1"><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">&#8220;为什么大家总是觉得女的职员不好，看多有灵气的一个小姑娘呀，又是个好苗子。&#8221;</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">GraphicalEditPart"</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">教练</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">"</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">此时内心中的自我形象简直就是华佗再世，那感觉真有点飘飘然乎，</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">GraphicalEditPart</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">先生不由自主地晃了晃脑袋。</SPAN></P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">接下来其它人纷纷发言：</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&#8220;工作经验很难相互交流，积累与提高。很难在部门级对工作流程等进行优化，缺乏专业化。&#8221;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; mso-outline-level: 1"><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">&#8220;我们经常要和</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">Figure</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">部门一起工作，跟踪操作执行。这很是浪费工作时间，尤其是当某个工作需要很长时间，或者中间经常需要和客户交流反馈一段时间，这样非常影响工作效率。&#8221;</SPAN></P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&#8220;对于客户的问题很难快速根据现有的经验模式形成解决方案，虽然我们公司服务态度和广告质量高于其它公司，但是经常由于反应速度太慢，活被其它公司从中抢了去，销售部门常常抱怨我们部门速度太慢。&#8221;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&#8220;公司在相应客户需要操作过程中，很难针对客户某个需求重新调整。客户常常抱怨在制作过程中很难做些小的改动。&#8221;</P>
<P lang=EN-US style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1">&#8230;&#8230;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; mso-outline-level: 1"><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">由于</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">GraphicalEditPart</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">先生管理小师的带领，</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">EditPart</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">部门的会议总是简短有效。</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">1</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">个小时多几分钟大家都把问题简明扼要的表达出来。</SPAN></P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; mso-outline-level: 1"><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">小李环顾下四周&#8220;最后，由</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">GraphicalEditPart</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">部长总结一下今天的会议&#8221;。</SPAN></P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; mso-outline-level: 1"><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">一直沉默的</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">GraphicalEditPart</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">先生站了起来，十分精神，也环顾了一下四周，清了清嗓子。</SPAN></P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&#8220;首先、我要自我检讨一下，这一年多总是忙乱于紧急的小事情当中，很久没有收集大家的建议和反馈了，这十分不利于我们部门的发展。今天大家举出很多目前部门的问题，这些充分反映了大家对部门的业务熟悉程度，我相信，这是因为大家十分关注公司的未来，希望公司越办越好，而不是怨天尤人的牢骚，可能有些领导会觉的这是找毛病对领导不满，在我这里，我今天在一次明确表明，我十方鼓励大家，欢迎大家将一些意见反馈给我，希望大家不仅仅是简单反馈在工作中的直接困难，而且经过自己的思考提炼写成简洁的文书给我，最好发挥自我主动和创造性提出一些变革建议。这些东西将是我们部门及公司潜在的珍贵的财富，同时也是我们部门未来发展方向的一个重要部分。&#8221;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; mso-outline-level: 1"><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">&#8220;今天的会议大家主要是针对我们部门的问题，希望会后大家再从公司整体考虑这些问题，以及未来扩充</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">EditPart</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">部门会带来什么问题，比如大家可以参考我们当初成立时遇到那些问题，这些问题将来如何避免或减少。&#8221;</SPAN></P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&#8220;按计划，会后，小李，小孙，小丁，小黄还有我，将总结今天会议，同时、制定出未来部门组织变革的策略。在此期间，希望大家踊跃的将自己的想法创意于我们交流。&#8221;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&#8220;还有一件事情，今天要批评一下小丁同事，现在开会不迟到了，但是，不仅没发言、我看你从开会就一直看前天发的材料，为什么不提前准备，这是耽误大家每个人的时间，下不为例。今后、小李你在部门规章里加一条，部门开会前必须提前阅读理解会议材料，凡违反者，包括我在内一律站到会议室角落站着阅读完资料后，在回会议座位。我的话完了。&#8221;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">小丁满脸通红，不由地低着头，双手捂住了腮帮，不敢喘气了，恨不得有个地缝钻进去。</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&#8220;今天会议结束。&#8221;小李宣布。</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">会后根据小孙的会议记录，很快的小李几个人总结出以下的一个鱼骨图。</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;<IMG src="http://www.cnblogs.com/images/cnblogs_com/xdingding/Gef-BlogWeb.gif" border=0></P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;<BR></P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1"><BR>&nbsp;<IMG src="http://www.cnblogs.com/images/cnblogs_com/xdingding/icon1.gif" border=0></P>
<P style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; MARGIN: 0in; COLOR: black; FONT-FAMILY: SimSun; mso-outline-level: 1">什么是因果图？</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; COLOR: black; FONT-FAMILY: SimSun; mso-outline-level: 1">因果图的发明者 Kaoru Ishikawa 是一名管理专家，其最初的目的是改进车间的质量控制工作。正如以下示例所示，因果图还能表达其他环境中的因果关系。<BR><IMG src="http://www.cnblogs.com/images/cnblogs_com/xdingding/ZA010359992052.gif" border=0><BR>&nbsp; </P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; COLOR: black; FONT-FAMILY: SimSun; mso-outline-level: 1">由于因果图的形状很像鱼的骨架，所以它又称作鱼骨图。鱼的脊骨上几根最大的鱼骨表示主要的原因类别。<BR>例如，在本例中，主要的原因类别有盎格鲁人/朱特人、丹麦人、萨克逊人和诺曼底人，这些种族群体都想控制英格兰，从而导致了该战争的爆发。</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; COLOR: black; FONT-FAMILY: SimSun; mso-outline-level: 1">主要类别中的较小鱼骨表示主要的原因。例如，在本例中，在萨克逊人这个类别方面，黑斯廷斯战争的主要原因在于公元 1051 年萨克逊王爱德华许诺将王位传给威廉一世。</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; COLOR: black; FONT-FAMILY: SimSun; mso-outline-level: 1">您还可以在主要原因上添加次要原因。</P><img src="http://www.cnblogs.com/xdingding/aggbug/292516.html?type=1" width="1" height="1" alt=""/><p>评论: 4　<a href="http://www.cnblogs.com/xdingding/archive/2005/12/07/292516.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/xdingding/archive/2005/12/07/292516.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56859/" target="_blank">美调查公司称苹果iPad配件成本最低219美元</a><span style="color:gray">(2010-02-10 17:20)</span><br/>· <a href="http://news.cnblogs.com/n/56858/" target="_blank">摩尔庄园：儿童生意密码</a><span style="color:gray">(2010-02-10 17:15)</span><br/>· <a href="http://news.cnblogs.com/n/56857/" target="_blank">Facebook与美国在线合作 整合AIM动态功能</a><span style="color:gray">(2010-02-10 16:41)</span><br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>GEF源码分析（五） GEF 的EditPart的职能分离 __ 跨国时尚媒体集团广告部门 的故事</title><link>http://www.cnblogs.com/xdingding/archive/2005/12/05/290823.html</link><dc:creator>般若菩提</dc:creator><author>般若菩提</author><pubDate>Mon, 05 Dec 2005 03:43:00 GMT</pubDate><guid>http://www.cnblogs.com/xdingding/archive/2005/12/05/290823.html</guid><description><![CDATA[<p>阅读: 1390 评论: 5 作者: <a href="http://www.cnblogs.com/xdingding/" target="_blank">般若菩提</a> 发表于 2005-12-05 11:43 <a href="http://www.cnblogs.com/xdingding/archive/2005/12/05/290823.html" target="_blank">原文链接</a></p><BR><A class=titlelink id=Editor_Results_rprSelectionList__ctl2_Hyperlink1 href="http://www.cnblogs.com/archive/2005/12/05/290704.html"><FONT color=#000000>GEF源码分析</FONT></A>（五） GEF 的EditPart的职能分离 __ 跨国时尚媒体集团广告部门 的故事<BR><BR><SPAN style="FONT-SIZE: 10pt">&nbsp; 
<P style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1"><SPAN style="FONT-SIZE: 10pt">接下来我们以一个故事的方式来解决第三篇遗留下来问题：</SPAN></P></SPAN><SPAN style="FONT-SIZE: 10pt"><BR></SPAN>
<P style="FONT-WEIGHT: bold; FONT-SIZE: 11pt; MARGIN: 0in; COLOR: #333399; FONT-FAMILY: SimSun; mso-outline-level: 1">已存在一个三角图形EditPart，我们想重用它,但是我们还需要增加（或删去）边框可调整的特性，如何保证无需重新建立一个新的EditPart，或者做出丑陋的继承，当功能不断组合后，出现无数子EditPart类? </P>
<P style="FONT-WEIGHT: bold; FONT-SIZE: 14pt; MARGIN: 0in; COLOR: #333399; FONT-FAMILY: SimSun; mso-outline-level: 1">如何由框架自动完成Undo及Redo功能？</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun"><SPAN style="FONT-SIZE: 10pt">
<P style="FONT-SIZE: 10pt; MARGIN: 0in; mso-outline-level: 1"><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">话说在某个跨国时尚媒体集团中国区广告部门（这是一家主营平面广告的广告公司，听说董事长是个年仅办百的老头GraphicalEditor先生，来自赫赫有名的</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">eclipse</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">基金财团），有目前主要有两个子部门</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">EditPart(</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">广告策划部</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">)</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">和</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">Figuer(</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">平面设计部</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">)</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">。</SPAN></P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; mso-outline-level: 1"><SPAN lang=EN-US style="FONT-FAMILY: Verdana">EditPart</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">部长是一位中年充满信心和活力GraphicalEditPart先生。</SPAN></P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; mso-outline-level: 1"><SPAN lang=EN-US style="FONT-FAMILY: Verdana">Figuer</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">部长是一位与部门名同名的广告主设计师美丽青春的</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">Figure</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">小姐。</SPAN></P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; mso-outline-level: 1"><SPAN lang=EN-US style="FONT-FAMILY: Verdana">EditPart</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">部长GraphicalEditPart目前主要肩负着三项任何：</SPAN></P>
<UL style="MARGIN-TOP: 0in; MARGIN-BOTTOM: 0in; MARGIN-LEFT: 1in; DIRECTION: ltr; unicode-bidi: embed" type=disc>
<LI style="MARGIN-TOP: 0px; FONT-SIZE: 10pt; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; mso-outline-level: 2"><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">处理由其他部门中的</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">Model</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">人员送来各销售部门广告需求；</SPAN> 
<LI style="MARGIN-TOP: 0px; FONT-SIZE: 10pt; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; mso-outline-level: 2"><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">做出具体的平面设计策划交给</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">Figure</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">小姐，由</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">Figure</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">小姐负责画出充满激情的平面广告；</SPAN> 
<LI style="MARGIN-TOP: 0px; FONT-SIZE: 10pt; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; mso-outline-level: 2"><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">读阅客户要求与反馈的</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">Request</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">文书，这些文书是由</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">Tool</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">（情报收集部门）收集客户的反馈及要求，经过专业的整理与分类而成（上篇我们以及探讨过了）</SPAN></LI></UL>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; mso-outline-level: 1"><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">由于公司扩大了业务，投入市场的产品种类比以往增加了三倍，</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">EditPart</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">部长工作变得异常繁忙有些快压垮了，感觉自己快成为整日驮着重物年迈的驴子，&#8220;是不是自己老了&#8221;GraphicalEditPart先生开始常常怀疑自己了。</SPAN></P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; mso-outline-level: 1"><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">这天，</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">EditPart</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">部长收到总部一封信：</SPAN></P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">GraphicalEditPart先生：</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.5in; mso-outline-level: 2"><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">首先我代表公司感谢您这些年勤奋出色的工作。我们公司在中国短短三年的营业额增长了四倍，同时</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">EditPart</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">中国部门在此期间获得了公司最有活力部门奖，这些成绩都与您的努力是分不开的。据我们了解，您在</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">EditPart</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">部门这三年中，实施了几项富有创意的制度改革，如成立</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">Tool</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">情报收集部门，推广后大大提高了整个公司</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">EditPart</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">部门业务处理能力。为了进一步扩大业务，公司在未来的两年里将在世界各地尤其是中国增加</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">40%</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">的区域广告部门，正如您所知道目前公司对于</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">EditPart</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">部门的组织规划以及责任制度还有很多不完善之处，这将十分不利于区域部门扩展的计划。故我委托您做出《未来广告部组织的规划》计划书，本月底将邀请您来总部参加组织规划与变革方案的评审会，届时将会对您的计划书进行评审。如通过评审，公司所有广告部将会按照您的计划书进行变革。</SPAN></P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.5in; mso-outline-level: 2"><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">祝愿世界明天的舞台，因我们而变得更加美好、充满激情与想象</SPAN></P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.5in; FONT-FAMILY: SimSun; mso-outline-level: 2">&nbsp;</P>
<P lang=EN-US style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 1in; FONT-FAMILY: Verdana; mso-outline-level: 3"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>CEO <SPAN style="FONT-STYLE: italic">GEF</SPAN></P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; mso-outline-level: 1"><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">&#8220;噢！太棒了，这封信来的真是及时，如果再继续如此的话，我要压垮了，只好另谋它职了。嗯，这回我要好好地写这个计划书。这样，身上担子总算有减轻的希望。有上司的赏识，我要一展宏图一番。&#8221;GraphicalEditPart不由自主拍了下桌子自言自语后，张开双臂，砰地一下仰靠在椅背上，深深地出了口气，双目轻合工作的压力似乎片刻间消失，顺手戴上了他那十分酷毙的太阳镜，小声打开旁边</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">CD</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">，噢，夏威夷之夜，感觉自己此时就在夏威夷带着墨镜躺在金黄、松软、温暖的沙滩，吹着口哨，热情似火的太阳穿过太阳镜，越过眼皮，将几缕模糊的光芒带入眼中（其实是他那高瓦的吊灯），海风习习（旁边的电风扇），在享受着这片刻宁静天堂感觉，激情创意不断涌出，啊，久违了的感觉。</SPAN></P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; mso-outline-level: 1"><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">开干！迅速的打开他喜爱的脑图软件</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana"> -- Mindjet Manager</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">，记录下脑中的构思，画下如下计划要点</SPAN></SPAN></SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">：</SPAN></P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1"><BR><IMG src="http://www.cnblogs.com/images/cnblogs_com/xdingding/部门规划.gif" border=0></P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; mso-outline-level: 1"><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">看来GraphicalEditPart先生要大干一场，欲知详情，请听下回分解<IMG src="http://www.cnblogs.com/Emoticons/emsmiled.gif" align=absMiddle border=0></SPAN></P><img src="http://www.cnblogs.com/xdingding/aggbug/290823.html?type=1" width="1" height="1" alt=""/><p>评论: 5　<a href="http://www.cnblogs.com/xdingding/archive/2005/12/05/290823.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/xdingding/archive/2005/12/05/290823.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56859/" target="_blank">美调查公司称苹果iPad配件成本最低219美元</a><span style="color:gray">(2010-02-10 17:20)</span><br/>· <a href="http://news.cnblogs.com/n/56858/" target="_blank">摩尔庄园：儿童生意密码</a><span style="color:gray">(2010-02-10 17:15)</span><br/>· <a href="http://news.cnblogs.com/n/56857/" target="_blank">Facebook与美国在线合作 整合AIM动态功能</a><span style="color:gray">(2010-02-10 16:41)</span><br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>GEF源码分析（四） GEF 消息转义 ___ Tool的作用</title><link>http://www.cnblogs.com/xdingding/archive/2005/12/05/290704.html</link><dc:creator>般若菩提</dc:creator><author>般若菩提</author><pubDate>Mon, 05 Dec 2005 01:26:00 GMT</pubDate><guid>http://www.cnblogs.com/xdingding/archive/2005/12/05/290704.html</guid><description><![CDATA[<p>阅读: 1811 评论: 5 作者: <a href="http://www.cnblogs.com/xdingding/" target="_blank">般若菩提</a> 发表于 2005-12-05 09:26 <a href="http://www.cnblogs.com/xdingding/archive/2005/12/05/290704.html" target="_blank">原文链接</a></p>



<br>郁闷！同志们没有留言，不知是写的太差，何处需要改进，还是大家觉得对自己没有用处....&nbsp; <br><br>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: Verdana;" lang="EN-US">GEF源码分析</span><span style="font-family: SimSun;" lang="ZH-CN">（四）</span><span style="font-family: Verdana;" lang="EN-US"> GEF </span><span style="font-family: SimSun;" lang="ZH-CN">消息转义</span><span style="font-family: Verdana;" lang="EN-US"> ___ Tool</span><span style="font-family: SimSun;" lang="ZH-CN">的作用</span></p>
<p style="margin: 0in; font-size: 8pt; font-family: SimSun;"><br></p>
<p style="margin: 0in; font-size: 8pt; font-family: SimSun;"><font size="2">接着上一节：</font></p>
<p style="margin: 0in; font-size: 8pt; font-family: SimSun;"><font size="2">我们先解决如下问题：</font></p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;"><span style="font-weight: bold; color: rgb(51, 51, 153);">在界面操作过程中，我们希望面对的是边框调整事件，图形移动事件，或者是编辑文本事件，而不是原始的鼠标和键盘事件？</span><span style="color: black;"> </span></p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">术语定义：</p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-weight: bold; color: rgb(153, 51, 0); font-family: SimSun;" lang="ZH-CN">系统</span><span style="font-weight: bold; color: rgb(153, 51, 0); font-family: Verdana;" lang="EN-US">UI</span><span style="font-weight: bold; color: rgb(153, 51, 0); font-family: SimSun;" lang="ZH-CN">事件：</span><span style="font-weight: bold; color: rgb(153, 51, 0); font-family: Verdana;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: SimSun;" lang="ZH-CN">一般由某些计算机人机交互硬件发出信号，并且经操作系统理解后产生的事件，例如：原始的鼠标的移动、点击和键盘的敲击事件等。</span></p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-weight: bold; color: rgb(153, 51, 0); font-family: Verdana;" lang="EN-US">UI</span><span style="font-weight: bold; color: rgb(153, 51, 0); font-family: SimSun;" lang="ZH-CN">业务语义事件：</span><span style="font-weight: bold; font-family: Verdana;" lang="EN-US"> </span><span style="font-family: SimSun;" lang="ZH-CN">由系统</span><span style="font-family: Verdana;" lang="EN-US">UI</span><span style="font-family: SimSun;" lang="ZH-CN">事件和其它</span><span style="font-family: Verdana;" lang="EN-US">UI</span><span style="font-family: SimSun;" lang="ZH-CN">业务语义事件触发，由</span><span style="font-family: Verdana;" lang="EN-US">UI</span><span style="font-family: SimSun;" lang="ZH-CN">业务代码理解后产生的事件（操作系统不可理解，同时无任何领域的业务语义），如</span><span style="font-family: Verdana;" lang="EN-US">2D</span><span style="font-family: SimSun;" lang="ZH-CN">图形的尺寸调整，</span><span style="font-family: Verdana;" lang="EN-US">2D</span><span style="font-family: SimSun;" lang="ZH-CN">图形的点击，</span><span style="font-family: Verdana;" lang="EN-US">2D</span><span style="font-family: SimSun;" lang="ZH-CN">图形的移动。</span></p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: SimSun;" lang="ZH-CN">（其实不仅限于事件的转义，包括</span><span style="font-family: Verdana;" lang="EN-US">UI</span><span style="font-family: SimSun;" lang="ZH-CN">的改变，也需要由系统</span><span style="font-family: Verdana;" lang="EN-US">UI</span><span style="font-family: SimSun;" lang="ZH-CN">语义转换到</span><span style="font-family: Verdana;" lang="EN-US">UI</span><span style="font-family: SimSun;" lang="ZH-CN">业务语义来使用）</span></p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p><img src="http://www.cnblogs.com/images/cnblogs_com/xdingding/Untitled-2.jpg" border="0"> 
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: Verdana;" lang="EN-US">UI</span><span style="font-family: SimSun;" lang="ZH-CN">业务语义事件在</span><span style="font-family: Verdana;" lang="EN-US">Controller</span><span style="font-family: SimSun;" lang="ZH-CN">控制中的优点是易于理解、维护和扩充，具体的主要有以下方面：</span></p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: Verdana;" lang="EN-US">a.</span><span style="font-family: SimSun;" lang="ZH-CN">减少系统</span><span style="font-family: Verdana;" lang="EN-US">UI</span><span style="font-family: SimSun;" lang="ZH-CN">事件判断逻辑部分代码的重复。比如在</span><span style="font-family: Verdana;" lang="EN-US">Controller</span><span style="font-family: SimSun;" lang="ZH-CN">部分代码无需分步着大量逻辑重复的代码，当鼠标移动时去判断究竟是一个</span><span style="font-family: Verdana;" lang="EN-US">2D</span><span style="font-family: SimSun;" lang="ZH-CN">图形的尺寸改变，还是一个</span><span style="font-family: Verdana;" lang="EN-US">2D</span><span style="font-family: SimSun;" lang="ZH-CN">图形的移动，还是一组</span><span style="font-family: Verdana;" lang="EN-US">2D</span><span style="font-family: SimSun;" lang="ZH-CN">图形的移动，还是</span><span style="font-family: Verdana;" lang="EN-US">2D</span><span style="font-family: SimSun;" lang="ZH-CN">图形</span><span style="font-family: Verdana;" lang="EN-US">DragAnd</span><span style="font-family: SimSun;" lang="EN-US">Drop</span><span style="font-family: SimSun;" lang="ZH-CN">的动作。</span></p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: Verdana;" lang="EN-US">b.Controller</span><span style="font-family: SimSun;" lang="ZH-CN">部分的代码语义明确。在</span><span style="font-family: SimSun;" lang="EN-US">Controller</span><span style="font-family: SimSun;" lang="ZH-CN">内部处理代码和接口中直接面对的是</span><span style="font-family: Verdana;" lang="EN-US">UI</span><span style="font-family: SimSun;" lang="ZH-CN">业务语义，如图形的移动，图形的尺寸改变，这样、代码易于理解、调试等。</span></p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: Verdana;" lang="EN-US">b.Controller</span><span style="font-family: SimSun;" lang="ZH-CN">部分代码无需为系统</span><span style="font-family: Verdana;" lang="EN-US">UI</span><span style="font-family: SimSun;" lang="ZH-CN">事件保存状态。如</span><span style="font-family: Verdana;" lang="EN-US">2D</span><span style="font-family: SimSun;" lang="ZH-CN">图形的移动中，如果这些事件直接在</span><span style="font-family: Verdana;" lang="EN-US">Controller</span><span style="font-family: SimSun;" lang="ZH-CN">中处理，从开始</span><span style="font-family: Verdana;" lang="EN-US">MouseDown,</span><span style="font-family: SimSun;" lang="ZH-CN">到</span><span style="font-family: Verdana;" lang="EN-US">MouseMove</span><span style="font-family: SimSun;" lang="ZH-CN">，到</span><span style="font-family: Verdana;" lang="EN-US">MouseUp</span><span style="font-family: SimSun;" lang="ZH-CN">过程中，在</span><span style="font-family: Verdana;" lang="EN-US">Controller</span><span style="font-family: SimSun;" lang="ZH-CN">中要集中保留这样众多状态，极易造成</span><span style="font-family: Verdana;" lang="EN-US">Controller</span><span style="font-family: SimSun;" lang="ZH-CN">代码具体多头职责的症状，从而患上严重的精神分裂</span><span style="font-family: Verdana;" lang="EN-US">:)</span><span style="font-family: SimSun;" lang="ZH-CN">。</span></p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: SimSun;" lang="ZH-CN">于是乎</span><span style="font-family: Verdana;" lang="EN-US">GEF</span><span style="font-family: SimSun;" lang="ZH-CN">的</span><span style="font-family: Verdana;" lang="EN-US">FrameWork</span><span style="font-family: SimSun;" lang="ZH-CN">有给出以下的解决方案：</span></p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-size: 8pt; font-family: SimSun;"><img src="http://www.cnblogs.com/images/cnblogs_com/xdingding/Untitled-7.gif" border="0"></p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: SimSun;" lang="ZH-CN">图</span><span style="font-family: Verdana;" lang="EN-US">A</span></p>
<p style="margin: 0in; font-size: 8pt; color: rgb(102, 102, 102); font-family: 宋体;">&nbsp;<br></p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: SimSun;" lang="ZH-CN"><br><br>如上图</span><span style="font-family: Verdana;" lang="EN-US">A</span><span style="font-family: SimSun;" lang="ZH-CN">：</span></p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: Verdana;" lang="EN-US">GEF</span><span style="font-family: SimSun;" lang="ZH-CN">通过</span><span style="font-family: Verdana;" lang="EN-US">Tools(</span><span style="font-family: SimSun;" lang="ZH-CN">根</span><span style="font-family: Verdana;" lang="EN-US">interface</span><span style="font-family: SimSun;" lang="ZH-CN">是</span><span style="font-family: Verdana;" lang="EN-US">Tool)</span><span style="font-family: SimSun;" lang="ZH-CN">，当然在视图上的</span><span style="font-family: Verdana;" lang="EN-US">Menu</span><span style="font-family: SimSun;" lang="ZH-CN">和</span><span style="font-family: Verdana;" lang="EN-US">Toolbar</span><span style="font-family: SimSun;" lang="ZH-CN">是通过</span><span style="font-family: Verdana;" lang="EN-US">Action</span><span style="font-family: SimSun;" lang="ZH-CN">发出，这个是</span><span style="font-family: Verdana;" lang="EN-US">eclipse</span><span style="font-family: SimSun;" lang="ZH-CN">的</span><span style="font-family: Verdana;" lang="EN-US">Workbench</span><span style="font-family: SimSun;" lang="ZH-CN">机制，在此就不讨论了。以下是</span><span style="font-family: Verdana;" lang="EN-US">Tool</span><span style="font-family: SimSun;" lang="ZH-CN">的类继承树：</span></p>
<p style="margin: 0in; font-size: 8pt; font-family: SimSun;">&nbsp;</p><img src="http://www.cnblogs.com/images/cnblogs_com/xdingding/Untitled-6.gif" border="0"> 
<p style="margin: 0in; font-size: 8pt;"><span style="font-family: SimSun;" lang="ZH-CN">图</span><span style="font-family: Verdana;" lang="EN-US">B<br></span></p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: SimSun;" lang="ZH-CN"><br><br>从上图</span><span style="font-family: Verdana;" lang="EN-US">B</span><span style="font-family: SimSun;" lang="ZH-CN">可以看出</span></p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: SimSun;" lang="ZH-CN">从</span><span style="font-family: Verdana;" lang="EN-US">Tool</span><span style="font-family: SimSun;" lang="ZH-CN">继承的这些类均处理一个或者一类</span><span style="font-family: Verdana;" lang="EN-US">UI</span><span style="font-family: SimSun;" lang="ZH-CN">业务语义事件，其中需要保留中间状态的子类均以</span><span style="font-family: Verdana;" lang="EN-US">XXXTracker</span><span style="font-family: SimSun;" lang="ZH-CN">形式出现。</span></p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: SimSun;" lang="ZH-CN">首先这些</span><span style="font-family: Verdana;" lang="EN-US">Tool</span><span style="font-family: SimSun;" lang="ZH-CN">的实现类通过</span><span style="font-family: Verdana;" lang="EN-US">Tool</span><span style="font-family: SimSun;" lang="ZH-CN">的接口（上图右边），接收界面来的事件，然后调用内部</span><span style="font-family: Verdana;" lang="EN-US">handleXXX</span><span style="font-family: SimSun;" lang="ZH-CN">，这样通过内部函数getTargetRequest</span><span style="font-family: Verdana;" lang="EN-US">()[</span><span style="font-family: SimSun;" lang="ZH-CN">create</span><span style="font-family: Verdana;" lang="EN-US">Target</span><span style="font-family: SimSun;" lang="ZH-CN">Request()</span><span style="font-family: Verdana;" lang="EN-US">]</span><span style="font-family: SimSun;" lang="ZH-CN">和getSourceRequest()</span><span style="font-family: Verdana;" lang="EN-US">[</span><span style="font-family: SimSun;" lang="ZH-CN">createSourceRequest()</span><span style="font-family: Verdana;" lang="EN-US">]</span><span style="font-family: SimSun;" lang="ZH-CN">，把系统</span><span style="font-family: Verdana;" lang="EN-US">UI</span><span style="font-family: SimSun;" lang="ZH-CN">事件转换为</span><span style="font-family: Verdana;" lang="EN-US">UI</span><span style="font-family: SimSun;" lang="ZH-CN">业务语义事件叫</span><span style="color: rgb(153, 51, 0); font-style: italic; font-family: Verdana; text-decoration: underline;" lang="EN-US">Request</span><span style="font-family: SimSun;" lang="ZH-CN">（如图</span><span style="font-family: Verdana;" lang="EN-US">C</span><span style="font-family: SimSun;" lang="ZH-CN">）。至此</span><span style="font-family: Verdana;" lang="EN-US">Tool</span><span style="font-family: SimSun;" lang="ZH-CN">会通过调用相关联的</span><span style="font-family: Verdana;" lang="EN-US">EditPart</span><span style="font-family: SimSun;" lang="ZH-CN">的接口将</span><span style="font-family: Verdana;" lang="EN-US">UI</span><span style="font-family: SimSun;" lang="ZH-CN">业务语义事件通知到</span><span style="font-family: Verdana;" lang="EN-US">EditPart</span><span style="font-family: SimSun;" lang="ZH-CN">中。于是在</span><span style="font-family: Verdana;" lang="EN-US">Controller(EditPart)</span><span style="font-family: SimSun;" lang="ZH-CN">中仅仅需要理解处理</span><span style="font-family: Verdana;" lang="EN-US">Request</span><span style="font-family: SimSun;" lang="ZH-CN">对象。</span></p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p><br><img src="http://www.cnblogs.com/images/cnblogs_com/xdingding/Untitled-8.gif" border="0">&nbsp; 
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: SimSun;" lang="ZH-CN">图</span><span style="font-family: Verdana;" lang="EN-US">C</span></p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: SimSun;" lang="ZH-CN">下面以</span><span style="font-family: Verdana;" lang="EN-US">ResizeTracker</span><span style="font-family: SimSun;" lang="ZH-CN">代码为例：</span></p>
<p style="margin: 0in; font-weight: bold; font-size: 10pt; color: rgb(153, 51, 0); font-style: italic; font-family: SimSun; text-decoration: underline;">class ResizeTracker</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">protected Request createSourceRequest() {</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">ChangeBoundsRequest request;</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-style: italic; font-family: SimSun; text-decoration: underline;">request = new ChangeBoundsRequest(REQ_RESIZE);</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">request.setResizeDirection(getResizeDirection());</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">return request;</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">}</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">protected Command getCommand() {</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">List editparts = getOperationSet();</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">EditPart part;</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">CompoundCommand command = new CompoundCommand();</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">command.setDebugLabel("Resize Handle Tracker");//$NON-NLS-1$</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">for (int i = 0; i &lt; editparts.size(); i++) {</p>
<p style="margin: 0in 0in 0in 1in; font-size: 10pt; font-family: SimSun;">part = (EditPart)editparts.get(i);</p>
<p style="margin: 0in 0in 0in 1in; font-size: 10pt; font-family: SimSun;">command.add(part.getCommand(getSourceRequest()));</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">}</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">return command.unwrap();</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">}</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">protected void eraseTargetFeedback() {</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">if (!getFlag(FLAG_TARGET_FEEDBACK))</p>
<p style="margin: 0in 0in 0in 1in; font-size: 10pt; font-family: SimSun;">return;</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">if (getTargetEditPart() != null)</p>
<p style="margin: 0in 0in 0in 1in; font-size: 10pt; font-family: SimSun;">getTargetEditPart().eraseTargetFeedback(getSourceRequest());</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">setFlag(FLAG_TARGET_FEEDBACK, false);</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">}</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">protected boolean handleButtonUp(int button) {</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">if (stateTransition(STATE_DRAG_IN_PROGRESS, STATE_TERMINAL)) {</p>
<p style="margin: 0in 0in 0in 1in; font-size: 10pt; font-family: SimSun;">eraseSourceFeedback();</p>
<p style="margin: 0in 0in 0in 1in; font-size: 10pt; font-family: SimSun;">eraseTargetFeedback();</p>
<p style="margin: 0in 0in 0in 1in; font-size: 10pt; font-family: SimSun;">performDrag();</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">}</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">return true;</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">}</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">最后还有个问题是<br></p>
<p style="margin: 0in; font-weight: bold; font-size: 10pt; color: rgb(51, 51, 153);"><span style="font-family: Verdana;" lang="EN-US"><img src="http://www.cnblogs.com/images/cnblogs_com/xdingding/Untitled-2.jpg" border="0" height="50" width="50"><br>Tool</span><span style="font-family: SimSun;" lang="ZH-CN">这些事件接口，如何从</span><span style="font-family: Verdana;" lang="EN-US">Viewer</span><span style="font-family: SimSun;" lang="ZH-CN">传递过来的呢？</span></p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">我画了一个简要的类图</p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: SimSun;" lang="ZH-CN"><img src="http://www.cnblogs.com/images/cnblogs_com/xdingding/gefCallToolsWeb.gif" border="0"><br>图</span><span style="font-family: Verdana;" lang="EN-US">D</span></p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;"><br>参照上图，下面罗列重要代码：</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">大家主要以下两方面</p>
<p style="margin: 0in 0in 0in 0.5in; font-weight: bold; font-size: 10pt; color: rgb(153, 51, 0); font-family: SimSun;">一、创建这些关键事件处理链的过程（注意图上的粗体文字）；</p>
<p style="margin: 0in 0in 0in 0.5in; font-weight: bold; font-size: 10pt; color: rgb(153, 51, 0);"><span style="font-family: SimSun;" lang="ZH-CN">二、消息从</span><span style="font-family: Verdana;" lang="EN-US">SWT</span><span style="font-family: SimSun;" lang="ZH-CN">中</span><span style="font-family: Verdana;" lang="EN-US">Canvas</span><span style="font-family: SimSun;" lang="ZH-CN">实例传递到</span><span style="font-family: Verdana;" lang="EN-US">Tool</span><span style="font-family: SimSun;" lang="ZH-CN">过程（图</span><span style="font-family: Verdana;" lang="EN-US">D</span><span style="font-family: SimSun;" lang="ZH-CN">中注释标签的顺序）；</span></p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-weight: bold; font-size: 10pt; color: rgb(153, 51, 0); font-style: italic; font-family: SimSun; text-decoration: underline;">class GraphicalEditor</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">public void createPartControl(Composite parent) {</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-style: italic; font-family: SimSun; text-decoration: underline;">createGraphicalViewer(parent);</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">}</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">protected void createGraphicalViewer(Composite parent) {</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-style: italic; font-family: SimSun; text-decoration: underline;">GraphicalViewer viewer = new ScrollingGraphicalViewer();</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">viewer.createControl(parent);</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-style: italic; font-family: SimSun; text-decoration: underline;">setGraphicalViewer(viewer);</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">configureGraphicalViewer();</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">hookGraphicalViewer();</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">initializeGraphicalViewer();</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">}</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">protected void setGraphicalViewer(GraphicalViewer viewer) {</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-style: italic; font-family: SimSun; text-decoration: underline;">getEditDomain().addViewer(viewer);</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">this.graphicalViewer = viewer;</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">}</p>
<p style="margin: 0in; font-weight: bold; font-size: 10pt; color: rgb(153, 51, 0); font-style: italic; font-family: SimSun; text-decoration: underline;">class EditDomain </p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">public void addViewer(EditPartViewer viewer) {</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-style: italic; font-family: SimSun; text-decoration: underline;">viewer.setEditDomain(this);</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">if (!viewers.contains(viewer))</p>
<p style="margin: 0in 0in 0in 1in; font-size: 10pt; font-family: SimSun;">viewers.add(viewer);</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">}</p>
<p style="margin: 0in; font-weight: bold; font-size: 10pt; color: rgb(153, 51, 0); font-style: italic; font-family: SimSun; text-decoration: underline;">class GraphicalViewerImpl</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">public void setEditDomain(EditDomain domain) {</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">super.setEditDomain(domain);</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">// Set the new event dispatcher, even if the new domain is null.<span>&nbsp; </span>This will dispose</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">// the old event dispatcher.</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-style: italic; font-family: SimSun; text-decoration: underline;">getLightweightSystem()</p>
<p style="margin: 0in 0in 0in 1in; font-size: 10pt; font-style: italic; font-family: SimSun; text-decoration: underline;">.setEventDispatcher(eventDispatcher = new DomainEventDispatcher(domain, this));</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">}</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-size: 10pt; font-style: italic; font-family: SimSun; text-decoration: underline;">private final LightweightSystem lws = createLightweightSystem();</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-weight: bold; font-size: 10pt; color: rgb(153, 51, 0); font-style: italic; font-family: SimSun; text-decoration: underline;">class ScrollingGraphicalViewer</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">public void setEditDomain(EditDomain domain) {</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">super.setEditDomain(domain);</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">// Set the new event dispatcher, even if the new domain is null.<span>&nbsp; </span>This will dispose</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">// the old event dispatcher.</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-style: italic; font-family: SimSun; text-decoration: underline;">getLightweightSystem()</p>
<p style="margin: 0in 0in 0in 1in; font-size: 10pt; font-style: italic; font-family: SimSun; text-decoration: underline;">.setEventDispatcher(eventDispatcher = new DomainEventDispatcher(domain, this));</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">}</p>
<p style="margin: 0in; font-weight: bold; font-size: 10pt; color: rgb(153, 51, 0); font-style: italic; text-decoration: underline;"><span style="font-family: Verdana;" lang="EN-US">class </span><span style="font-family: SimSun;" lang="EN-US">Light</span><span style="font-family: SimSun;" lang="ZH-CN">weightSystem</span></p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">public void setEventDispatcher(EventDispatcher dispatcher) {</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt;"><span style="font-family: SimSun;" lang="ZH-CN">this.dispatcher = dispatcher;</span><span style="font-family: Verdana;" lang="EN-US"><span>&nbsp; </span>//</span><span style="font-family: SimSun;" lang="ZH-CN">在此</span><span style="font-family: Verdana;" lang="EN-US">Shapes</span><span style="font-family: SimSun;" lang="ZH-CN">例子中是</span><span style="font-style: italic; font-family: SimSun; text-decoration: underline;" lang="ZH-CN">DomainEventDispatcher</span></p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">dispatcher.setRoot(root);</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">dispatcher.setControl(canvas);</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">}</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">protected void addListeners() {</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">EventHandler handler = createEventHandler();</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">canvas.getAccessible().addAccessibleListener(handler);</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">canvas.getAccessible().addAccessibleControlListener(handler);</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-style: italic; font-family: SimSun; text-decoration: underline;">canvas.addMouseListener(handler);</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-style: italic; font-family: SimSun; text-decoration: underline;">canvas.addMouseMoveListener(handler);</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-style: italic; font-family: SimSun; text-decoration: underline;">canvas.addMouseTrackListener(handler);</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">canvas.addKeyListener(handler);</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">canvas.addTraverseListener(handler);</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">canvas.addFocusListener(handler);</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">canvas.addListener(SWT.MouseWheel, handler);</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: Verdana;" lang="EN-US">&#8230;&#8230;</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-style: italic; font-family: SimSun; text-decoration: underline;">setEventDispatcher(getEventDispatcher());</p>
<p style="margin: 0in; font-size: 10pt; font-family: Verdana;" lang="EN-US">}</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-weight: bold; font-size: 10pt; color: rgb(153, 51, 0); font-style: italic; font-family: SimSun; text-decoration: underline;">class EventHandler </p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">implements MouseMoveListener, MouseListener, AccessibleControlListener, KeyListener,</p>
<p style="margin: 0in 0in 0in 1in; font-size: 10pt; font-family: SimSun;">TraverseListener, FocusListener, AccessibleListener, MouseTrackListener,</p>
<p style="margin: 0in 0in 0in 1in; font-size: 10pt; font-family: SimSun;">Listener</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">{</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: Verdana;" lang="EN-US">&#8230;</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">public void keyPressed(KeyEvent e) {</p>
<p style="margin: 0in 0in 0in 1in; font-size: 10pt;"><span style="font-family: Verdana;" lang="EN-US"><span>&nbsp;</span>//</span><span style="font-family: SimSun;" lang="ZH-CN">在此</span><span style="font-family: Verdana;" lang="EN-US">Shapes</span><span style="font-family: SimSun;" lang="ZH-CN">例子中是</span><span style="font-style: italic; font-family: SimSun; text-decoration: underline;" lang="ZH-CN">DomainEventDispatcher</span></p>
<p style="margin: 0in 0in 0in 1in; font-size: 10pt; font-style: italic; text-decoration: underline;"><span style="font-family: SimSun;" lang="ZH-CN">getEventDispatcher().dispatchKeyPressed(e);</span><span style="font-family: Verdana;" lang="EN-US"> </span></p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">}</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: Verdana;" lang="EN-US">&#8230;</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">public void mouseDoubleClick(MouseEvent e) {</p>
<p style="margin: 0in 0in 0in 1in; font-size: 10pt; font-style: italic; font-family: SimSun; text-decoration: underline;">getEventDispatcher().dispatchMouseDoubleClicked(e);</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">}</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: Verdana;" lang="EN-US">&#8230;</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">public void mouseMove(MouseEvent e) {</p>
<p style="margin: 0in 0in 0in 1in; font-size: 10pt; font-style: italic; font-family: SimSun; text-decoration: underline;">getEventDispatcher().dispatchMouseMoved(e);</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">}</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: SimSun;">public void mouseUp(MouseEvent e) {</p>
<p style="margin: 0in 0in 0in 1in; font-size: 10pt; font-style: italic; font-family: SimSun; text-decoration: underline;">getEventDispatcher().dispatchMouseReleased(e);</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: Verdana;" lang="EN-US">}</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; font-family: Verdana;" lang="EN-US">&#8230;</p>
<p style="margin: 0in; font-size: 10pt; font-family: Verdana;" lang="EN-US">}</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: SimSun;" lang="ZH-CN">这样、在图</span><span style="font-family: Verdana;" lang="EN-US">A</span><span style="font-family: SimSun;" lang="ZH-CN">中</span><span style="font-family: Verdana;" lang="EN-US">Request</span><span style="font-family: SimSun;" lang="ZH-CN">发送到</span><span style="font-family: Verdana;" lang="EN-US">EditPart</span><span style="font-family: SimSun;" lang="ZH-CN">机制做了简要的探讨。</span></p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: SimSun;" lang="ZH-CN">学习了</span><span style="font-family: Verdana;" lang="EN-US">Tool</span><span style="font-family: SimSun;" lang="ZH-CN">产生</span><span style="font-family: Verdana;" lang="EN-US">Request</span><span style="font-family: SimSun;" lang="ZH-CN">的机制，可以帮助我们调试</span><span style="font-family: Verdana;" lang="EN-US">GEF</span><span style="font-family: SimSun;" lang="ZH-CN">，同时如果在大家自己的程序中需要有新的</span><span style="font-family: Verdana;" lang="EN-US">UI</span><span style="font-family: SimSun;" lang="ZH-CN">交互类型，也可以试着建立自己的</span><span style="font-family: Verdana;" lang="EN-US">Tool</span><span style="font-family: SimSun;" lang="ZH-CN">类产生新的</span><span style="font-family: Verdana;" lang="EN-US">Request</span><span style="font-family: SimSun;" lang="ZH-CN">，这样在自己的</span><span style="font-family: Verdana;" lang="EN-US">EditPart</span><span style="font-family: SimSun;" lang="ZH-CN">产生对应的</span><span style="font-family: Verdana;" lang="EN-US">Command,</span><span style="font-family: SimSun;" lang="ZH-CN">这样就可以处理实现新的</span><span style="font-family: Verdana;" lang="EN-US">UI</span><span style="font-family: SimSun;" lang="ZH-CN">交互类型。</span></p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: SimSun;" lang="ZH-CN">在下一篇我们探讨一下有关图</span><span style="font-family: Verdana;" lang="EN-US">A</span><span style="font-family: SimSun;" lang="ZH-CN">中的</span><span style="font-family: Verdana;" lang="EN-US">EditPart</span><span style="font-family: SimSun;" lang="ZH-CN">如何产生</span><span style="font-family: Verdana;" lang="EN-US">Command</span><span style="font-family: SimSun;" lang="ZH-CN">，以及执行</span><span style="font-family: Verdana;" lang="EN-US">Command</span><span style="font-family: SimSun;" lang="ZH-CN">问题。</span></p> <img src="http://www.cnblogs.com/xdingding/aggbug/290704.html?type=1" width="1" height="1" alt=""/><p>评论: 5　<a href="http://www.cnblogs.com/xdingding/archive/2005/12/05/290704.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/xdingding/archive/2005/12/05/290704.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56859/" target="_blank">美调查公司称苹果iPad配件成本最低219美元</a><span style="color:gray">(2010-02-10 17:20)</span><br/>· <a href="http://news.cnblogs.com/n/56858/" target="_blank">摩尔庄园：儿童生意密码</a><span style="color:gray">(2010-02-10 17:15)</span><br/>· <a href="http://news.cnblogs.com/n/56857/" target="_blank">Facebook与美国在线合作 整合AIM动态功能</a><span style="color:gray">(2010-02-10 16:41)</span><br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>GEF源码分析（三） GEF 的树状构架 ___ Model/EditPart/Figure</title><link>http://www.cnblogs.com/xdingding/archive/2005/12/01/288425.html</link><dc:creator>般若菩提</dc:creator><author>般若菩提</author><pubDate>Thu, 01 Dec 2005 03:09:00 GMT</pubDate><guid>http://www.cnblogs.com/xdingding/archive/2005/12/01/288425.html</guid><description><![CDATA[<p>阅读: 1571 评论: 2 作者: <a href="http://www.cnblogs.com/xdingding/" target="_blank">般若菩提</a> 发表于 2005-12-01 11:09 <a href="http://www.cnblogs.com/xdingding/archive/2005/12/01/288425.html" target="_blank">原文链接</a></p>



<br>GEF源码分析（三） GEF 的树状构架 ___ Model/EditPart/Figure<br><font face="宋体"><br>树状对象模型 建立过程<br></font>&nbsp;<br>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: SimSun;" lang="ZH-CN">如果要建立可编辑</span><span style="font-family: Verdana;" lang="EN-US">2D</span><span style="font-family: SimSun;" lang="ZH-CN">图形程序，比较基本的要有以下几个主要需求</span></p>
<ul style="margin-top: 0in; margin-bottom: 0in; margin-left: 1in; direction: ltr; unicode-bidi: embed;" type="circle">
<li style="margin-top: 0px; font-size: 10pt; margin-bottom: 0px; vertical-align: middle;"><span style="font-family: SimSun;" lang="ZH-CN">一方面我们有一个</span><span style="font-family: Verdana;" lang="EN-US">model</span><span style="font-family: SimSun;" lang="ZH-CN">对象组，这些包含了拥有一些业务以及</span><span style="font-family: Verdana;" lang="EN-US">UI</span><span style="font-family: SimSun;" lang="ZH-CN">展现上的数据；</span> 
</li><li style="margin-top: 0px; font-size: 10pt; margin-bottom: 0px; vertical-align: middle;"><span style="font-family: SimSun;">另一方面我们有一个视图它将包含一组可视化对象，这些可视化对象定义了如何在屏幕上描绘；</span> 
</li><li style="margin-top: 0px; font-size: 10pt; margin-bottom: 0px; vertical-align: middle;"><span style="font-family: SimSun;" lang="ZH-CN">用户能够使用鼠标和键盘修改图形视图。这需要在程序的内部通过某种方式建立在</span><span style="font-family: Verdana;" lang="EN-US">UI</span><span style="font-family: SimSun;" lang="ZH-CN">对象和</span><span style="font-family: Verdana;" lang="EN-US">model</span><span style="font-family: SimSun;" lang="ZH-CN">关联方式，透过二者的关联，当视图发生改变时，需要引发</span><span style="font-family: Verdana;" lang="EN-US">model</span><span style="font-family: SimSun;" lang="ZH-CN">改变，而</span><span style="font-family: Verdana;" lang="EN-US">model</span><span style="font-family: SimSun;" lang="ZH-CN">也有可能由于某种业务逻辑发生改变，需要通知放映到视图上。</span></li></ul>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: SimSun;" lang="ZH-CN">这样我们就提供给用户一个图形交互的方式来修改业务</span><span style="font-family: Verdana;" lang="EN-US">model</span><span style="font-family: SimSun;" lang="ZH-CN">，具有这种能力的程序我们可以称之为可编辑</span><span style="font-family: Verdana;" lang="EN-US">2D</span><span style="font-family: SimSun;" lang="ZH-CN">图形程序（a graphical editor）。</span></p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: SimSun;" lang="ZH-CN">上一篇讨论到在</span><span style="font-family: Verdana;" lang="EN-US">GEF</span><span style="font-family: SimSun;" lang="ZH-CN">框架中形成了三个对应的树状对象模型。</span></p><img src="http://www.cnblogs.com/images/cnblogs_com/xdingding/Untitled-3.jpg" border="0"><br>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: SimSun;" lang="ZH-CN">为了达到之上的需求，</span><span style="font-family: Verdana;" lang="EN-US">GEF</span><span style="font-family: SimSun;" lang="ZH-CN">通过</span><span style="font-family: Verdana;" lang="EN-US">EditPart</span><span style="font-family: SimSun;" lang="ZH-CN">如上图建立了</span><span style="font-family: Verdana;" lang="EN-US">View</span><span style="font-family: SimSun;" lang="ZH-CN">和</span><span style="font-family: Verdana;" lang="EN-US">model</span><span style="font-family: SimSun;" lang="ZH-CN">之间的关联关系。<br></span></p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;"><br>于是问题随之而来：<img src="http://www.cnblogs.com/images/cnblogs_com/xdingding/Untitled-2.jpg" border="0" height="50" width="50"></p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt;"><span style="font-family: SimSun;" lang="ZH-CN">这些树状对象模型</span><span style="font-family: Verdana;" lang="EN-US"> </span><span style="font-family: SimSun;" lang="ZH-CN">如何？何时？创建</span></p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt;"><span style="font-family: SimSun;" lang="ZH-CN">尤其困难的是通过怎样简捷的方法在</span><span style="font-family: Verdana;" lang="EN-US">EditPart</span><span style="font-family: SimSun;" lang="ZH-CN">中建立它们的关联呢？</span></p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: Verdana;" lang="EN-US">GEF</span><span style="font-family: SimSun;" lang="ZH-CN">给出如下答案：</span></p><br>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;"><img src="http://www.cnblogs.com/images/cnblogs_com/xdingding/Untitled-5.gif" border="0">&nbsp;</p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: SimSun;" lang="ZH-CN">从上图可以看出在</span><span style="font-family: Verdana;" lang="EN-US">GEF</span><span style="font-family: SimSun;" lang="ZH-CN">是通过</span><span style="font-family: Verdana;" lang="EN-US">EditPartFactory</span><span style="font-family: SimSun;" lang="ZH-CN">根据以存在的</span><span style="font-family: Verdana;" lang="EN-US">Model </span><span style="font-family: SimSun;" lang="ZH-CN">来创建并设置不同的</span><span style="font-family: Verdana;" lang="EN-US">EditPart</span><span style="font-family: SimSun;" lang="ZH-CN">。</span></p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: Verdana;" lang="EN-US">EditPartFactory</span><span style="font-family: SimSun;" lang="ZH-CN">的接口如下：</span></p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; color: rgb(51, 51, 153); font-style: italic; font-family: SimSun;">EditPart createEditPart(EditPart context, Object model);</p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: SimSun;" lang="ZH-CN">其中</span><span style="font-family: Verdana;" lang="EN-US">model</span><span style="font-family: SimSun;" lang="ZH-CN">是</span><span style="font-family: Verdana;" lang="EN-US">Object</span><span style="font-family: SimSun;" lang="ZH-CN">类型，因此可以看出在</span><span style="font-family: Verdana;" lang="EN-US">GEF</span><span style="font-family: SimSun;" lang="ZH-CN">对</span><span style="font-family: Verdana;" lang="EN-US">model</span><span style="font-family: SimSun;" lang="ZH-CN">没什么过多的约束，</span><span style="font-family: Verdana;" lang="EN-US">context</span><span style="font-family: SimSun;" lang="ZH-CN">是于要创建的</span><span style="font-family: Verdana;" lang="EN-US">EditPart</span><span style="font-family: SimSun;" lang="ZH-CN">有关联的</span><span style="font-family: Verdana;" lang="EN-US">EditPart</span><span style="font-family: SimSun;" lang="ZH-CN">，例如是将要创建</span><span style="font-family: Verdana;" lang="EN-US">EditPart</span><span style="font-family: SimSun;" lang="ZH-CN">的</span><span style="font-family: Verdana;" lang="EN-US">Parent</span><span style="font-family: SimSun;" lang="ZH-CN">。</span></p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: SimSun;" lang="ZH-CN">这样</span><span style="font-family: Verdana;" lang="EN-US">GEF</span><span style="font-family: SimSun;" lang="ZH-CN">通过一下时序图就非常轻松的（学起来可不轻松</span><span style="font-family: Verdana;" lang="EN-US">:(</span><span style="font-family: SimSun;" lang="ZH-CN">）</span><span style="font-family: Verdana;" lang="EN-US">,</span><span style="font-family: SimSun;" lang="ZH-CN">根据</span><span style="font-family: Verdana;" lang="EN-US">model</span><span style="font-family: SimSun;" lang="ZH-CN">对象框架建立了另外两个</span><span style="font-family: Verdana;" lang="EN-US">EditParts</span><span style="font-family: SimSun;" lang="ZH-CN">和</span><span style="font-family: Verdana;" lang="EN-US">Figures</span><span style="font-family: SimSun;" lang="ZH-CN">树状体系。<span style="color: rgb(153, 51, 0);">[链接]<strong><A href="http://xdingding.cnblogs.com/archive/2005/12/01/288412.html"><span style="font-family: SimSun;" lang="ZH-CN"><strong>见下附图</strong></span><span style="font-family: Verdana;" lang="EN-US"><strong> </strong></span><span style="font-family: SimSun;" lang="ZH-CN"><strong>时序图</strong></span></a></strong></span></span><span style="font-family: SimSun;" lang="ZH-CN">。</span></p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">其中在创建过程中重要的方法：</p>
<p style="margin: 0in; font-size: 10pt; color: rgb(51, 51, 153);"><span style="font-family: Verdana;" lang="EN-US">class </span><span style="font-family: SimSun;" lang="EN-US">Shape</span><span style="font-family: SimSun;" lang="ZH-CN">sEditor</span></p><span style="font-family: SimSun;" lang="ZH-CN"><span style="font-size: 10pt;">
<p style="margin: 0in; font-size: 8pt; font-style: italic;"><span style="font-family: SimSun;" lang="ZH-CN">protected void </span><span style="font-weight: bold; font-family: SimSun;" lang="ZH-CN">configureGraphicalViewer(</span><span style="font-family: SimSun;" lang="ZH-CN">) {</span><span style="font-family: Verdana;" lang="EN-US"> .. }</span></p>
<p style="margin: 0in; font-size: 8pt; font-style: italic;"><span style="font-family: SimSun;" lang="ZH-CN">protected void </span><span style="font-weight: bold; font-family: SimSun;" lang="ZH-CN">initializeGraphicalViewer</span><span style="font-family: SimSun;" lang="ZH-CN">() {</span><span style="font-family: Verdana;" lang="EN-US">..}</span></p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p></span></span>
<p style="margin: 0in; font-size: 10pt; color: rgb(51, 51, 153);"><span style="font-family: Verdana;" lang="EN-US">class </span><span style="font-family: SimSun;" lang="EN-US">Shape</span><span style="font-family: SimSun;" lang="ZH-CN">sEditPartFactory</span></p>
<p style="margin: 0in; font-size: 8pt; font-style: italic; font-family: SimSun;">public EditPart createEditPart(EditPart context, Object modelElement) {</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 8pt; font-style: italic; font-family: SimSun;">// get EditPart for model element</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 8pt; font-style: italic; font-family: SimSun;">EditPart part = getPartForElement(modelElement);</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 8pt; font-style: italic; font-family: SimSun;">// store model element in EditPart</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 8pt; font-style: italic; font-family: SimSun;"><strong>part.setModel(modelElement);</strong></p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 8pt; font-style: italic; font-family: SimSun;">return part;</p>
<p style="margin: 0in; font-size: 8pt; font-style: italic; font-family: SimSun;">}</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-size: 8pt; font-style: italic; font-family: SimSun;">/**</p>
<p style="margin: 0in; font-size: 8pt; font-style: italic; font-family: SimSun;">* Maps an object to an EditPart. </p>
<p style="margin: 0in; font-size: 8pt; font-style: italic; font-family: SimSun;">* @throws RuntimeException if no match was found (programming error)</p>
<p style="margin: 0in; font-size: 8pt; font-style: italic; font-family: SimSun;">*/</p>
<p style="margin: 0in; font-size: 8pt; font-style: italic; font-family: SimSun;">private EditPart getPartForElement(Object modelElement) {</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt; color: rgb(153, 51, 0);"><strong><span style="font-family: Verdana;" lang="EN-US">//</span><span style="font-family: SimSun;" lang="ZH-CN">根据不同的</span><span style="font-family: Verdana;" lang="EN-US">model</span><span style="font-family: SimSun;" lang="ZH-CN">产生不同</span><span style="font-family: Verdana;" lang="EN-US">EditPart</span></strong></p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 8pt; font-style: italic; font-family: SimSun;">if (modelElement instanceof ShapesDiagram) {</p>
<p style="margin: 0in 0in 0in 1in; font-size: 8pt; font-style: italic; font-family: SimSun;">return new DiagramEditPart();</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 8pt; font-style: italic; font-family: SimSun;">}</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 8pt; font-style: italic; font-family: SimSun;">if (modelElement instanceof Shape) {</p>
<p style="margin: 0in 0in 0in 1in; font-size: 8pt; font-style: italic; font-family: SimSun;">return new ShapeEditPart();</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 8pt; font-style: italic; font-family: SimSun;">}</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 8pt; font-style: italic; font-family: SimSun;">if (modelElement instanceof Connection) {</p>
<p style="margin: 0in 0in 0in 1in; font-size: 8pt; font-style: italic; font-family: SimSun;">return new ConnectionEditPart();</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 8pt; font-style: italic; font-family: SimSun;">}</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 8pt; font-style: italic; font-family: SimSun;">throw new RuntimeException(</p>
<p style="margin: 0in 0in 0in 1in; font-size: 8pt; font-style: italic; font-family: SimSun;">"Can't create part for model element: "</p>
<p style="margin: 0in 0in 0in 1in; font-size: 8pt; font-style: italic; font-family: SimSun;">+ ((modelElement != null) ? modelElement.getClass().getName() : "null"));</p>
<p style="margin: 0in; font-size: 8pt; font-style: italic; font-family: SimSun;">}</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-size: 10pt; color: rgb(51, 51, 153); font-family: SimSun;">class ShapeEditPart</p>
<p style="margin: 0in; font-size: 8pt; font-style: italic; font-family: SimSun;">public void setModel(Object model) {</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 8pt; font-style: italic; font-family: SimSun;">if (getModel() == model)</p>
<p style="margin: 0in 0in 0in 1in; font-size: 8pt; font-style: italic; font-family: SimSun;">return;</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 8pt; font-style: italic; font-family: SimSun;">this.model = model;</p>
<p style="margin: 0in; font-size: 8pt; font-style: italic; font-family: SimSun;">}</p>
<p style="margin: 0in; font-size: 8pt; font-style: italic; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-size: 8pt; font-style: italic; font-family: SimSun;">protected IFigure createFigure() {</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 8pt; font-style: italic; font-family: SimSun;">IFigure f = createFigureForModel();</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 8pt; font-style: italic; font-family: SimSun;">f.setOpaque(true); // non-transparent figure</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 8pt; font-style: italic; font-family: SimSun;">f.setBackgroundColor(ColorConstants.green);</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 8pt; font-style: italic; font-family: SimSun;">return f;</p>
<p style="margin: 0in; font-size: 8pt; font-style: italic; font-family: SimSun;">}</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-size: 8pt; font-style: italic; font-family: SimSun;">/**</p>
<p style="margin: 0in; font-size: 8pt; font-style: italic; font-family: SimSun;">* Return a IFigure depending on the instance of the current model element.</p>
<p style="margin: 0in; font-size: 8pt; font-style: italic; font-family: SimSun;">* This allows this EditPart to be used for both sublasses of Shape. </p>
<p style="margin: 0in; font-size: 8pt; font-style: italic; font-family: SimSun;">*/</p>
<p style="margin: 0in; font-size: 8pt; font-style: italic; font-family: SimSun;">private IFigure createFigureForModel() {</p>
<p style="margin: 0in 0in 0in 0.5in; font-weight: bold; font-size: 10pt; color: rgb(153, 51, 0);"><span style="font-family: Verdana;" lang="EN-US">//</span><span style="font-family: SimSun;" lang="ZH-CN">根据不同的</span><span style="font-family: Verdana;" lang="EN-US">model</span><span style="font-family: SimSun;" lang="ZH-CN">创建不同的</span><span style="font-family: Verdana;" lang="EN-US">figure</span></p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 8pt; font-style: italic; font-family: SimSun;">if (getModel() instanceof EllipticalShape) {</p>
<p style="margin: 0in 0in 0in 1in; font-size: 8pt; font-style: italic; font-family: SimSun;">return new Ellipse();</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 8pt; font-style: italic; font-family: SimSun;">} else if (getModel() instanceof RectangularShape) {</p>
<p style="margin: 0in 0in 0in 1in; font-size: 8pt; font-style: italic; font-family: SimSun;">return new RectangleFigure();</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 8pt; font-style: italic; font-family: SimSun;">} else {</p>
<p style="margin: 0in 0in 0in 1in; font-size: 8pt; font-style: italic; font-family: SimSun;">// if Shapes gets extended the conditions above must be updated</p>
<p style="margin: 0in 0in 0in 1in; font-size: 8pt; font-style: italic; font-family: SimSun;">throw new IllegalArgumentException();</p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 8pt; font-style: italic; font-family: SimSun;">}</p>
<p style="margin: 0in; font-size: 10pt; font-style: italic; font-family: SimSun;">}<br><br><br><img src="http://www.cnblogs.com/images/cnblogs_com/xdingding/Untitled-2.jpg" border="0" height="50" width="50"><br>&nbsp;</p>
<p style="margin: 0in; font-size: 14pt; font-family: SimSun;"><strong style="color: rgb(51, 51, 153);">至此、我们就得到了树状的MVC框架，但是，还是有些问题没有解决：<br>例如、已存在一个三角图形EditPart，我们想重用它,但是我们还需要增加（或删去）边框可调整的特性，如何保证无需重新建立一个新的EditPart，或者做出丑陋的继承，当功能不断组合后，出现无数子EditPart类? <br>在界面操作过程中，我们希望面对的是边框调整事件，或者是编辑文本事件，而不是原始的鼠标和键盘事件？<br>希望EditPart能够自动无误地把事件通知到相应的父及子EditPart中，同时能够按照正确的顺序对事件做出响应?<br>如何由框架自动完成Undo及Redo功能？<br>.....</strong></p> <img src="http://www.cnblogs.com/xdingding/aggbug/288425.html?type=1" width="1" height="1" alt=""/><p>评论: 2　<a href="http://www.cnblogs.com/xdingding/archive/2005/12/01/288425.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/xdingding/archive/2005/12/01/288425.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56859/" target="_blank">美调查公司称苹果iPad配件成本最低219美元</a><span style="color:gray">(2010-02-10 17:20)</span><br/>· <a href="http://news.cnblogs.com/n/56858/" target="_blank">摩尔庄园：儿童生意密码</a><span style="color:gray">(2010-02-10 17:15)</span><br/>· <a href="http://news.cnblogs.com/n/56857/" target="_blank">Facebook与美国在线合作 整合AIM动态功能</a><span style="color:gray">(2010-02-10 16:41)</span><br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>GEF源码分析（三） 模拟GEF设计思路，解剖GEF2 附图：包含GEF的Editor创建时序图 </title><link>http://www.cnblogs.com/xdingding/archive/2005/12/01/288412.html</link><dc:creator>般若菩提</dc:creator><author>般若菩提</author><pubDate>Thu, 01 Dec 2005 02:49:00 GMT</pubDate><guid>http://www.cnblogs.com/xdingding/archive/2005/12/01/288412.html</guid><description><![CDATA[<p>阅读: 1494 评论: 2 作者: <a href="http://www.cnblogs.com/xdingding/" target="_blank">般若菩提</a> 发表于 2005-12-01 10:49 <a href="http://www.cnblogs.com/xdingding/archive/2005/12/01/288412.html" target="_blank">原文链接</a></p>



<br><br>&nbsp; 
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: SimSun;" lang="ZH-CN"><strong>包含GEF的Editor创建时序图</strong></span><span style="font-family: Verdana;" lang="EN-US"> <br><br></span><span style="font-family: SimSun;" lang="ZH-CN">以</span><span style="font-family: Verdana;" lang="EN-US">eclipse</span><span style="font-family: SimSun;" lang="ZH-CN">网站上例子<a href="http://www.eclipse.org/articles/Article-GEF-diagram-editor/shape.html">A Shape Diagram Editor</a>为例</span></p><br><br><img src="http://www.cnblogs.com/images/cnblogs_com/xdingding/gefc1.gif" align="bottom" height="452" hspace="5" width="590"><br><br><br><br><br><img src="http://www.cnblogs.com/images/cnblogs_com/xdingding/%E5%8C%85%E5%90%ABgef%E7%9A%84Editor%E7%9A%84createPartControl.gif" height="325" hspace="0" width="471"><br><br><img src="http://www.cnblogs.com/images/cnblogs_com/xdingding/configGraphicalViewer.gif" height="253" hspace="0" width="750"><br><br><img src="http://www.cnblogs.com/images/cnblogs_com/xdingding/initializeGraphicalViewer.gif" height="376" hspace="0" width="792">  <img src="http://www.cnblogs.com/xdingding/aggbug/288412.html?type=1" width="1" height="1" alt=""/><p>评论: 2　<a href="http://www.cnblogs.com/xdingding/archive/2005/12/01/288412.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/xdingding/archive/2005/12/01/288412.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56859/" target="_blank">美调查公司称苹果iPad配件成本最低219美元</a><span style="color:gray">(2010-02-10 17:20)</span><br/>· <a href="http://news.cnblogs.com/n/56858/" target="_blank">摩尔庄园：儿童生意密码</a><span style="color:gray">(2010-02-10 17:15)</span><br/>· <a href="http://news.cnblogs.com/n/56857/" target="_blank">Facebook与美国在线合作 整合AIM动态功能</a><span style="color:gray">(2010-02-10 16:41)</span><br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>GEF源码分析（二） 模拟GEF设计思路，解剖GEF 1</title><link>http://www.cnblogs.com/xdingding/archive/2005/11/30/287928.html</link><dc:creator>般若菩提</dc:creator><author>般若菩提</author><pubDate>Wed, 30 Nov 2005 08:52:00 GMT</pubDate><guid>http://www.cnblogs.com/xdingding/archive/2005/11/30/287928.html</guid><description><![CDATA[<p>阅读: 2257 评论: 5 作者: <a href="http://www.cnblogs.com/xdingding/" target="_blank">般若菩提</a> 发表于 2005-11-30 16:52 <a href="http://www.cnblogs.com/xdingding/archive/2005/11/30/287928.html" target="_blank">原文链接</a></p>



&nbsp; 
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: Verdana;" lang="EN-US">GEF</span><span style="font-family: SimSun;" lang="ZH-CN">学习笔记（二）</span><span style="font-family: Verdana;" lang="EN-US"> </span><span style="font-family: SimSun;" lang="ZH-CN">模拟</span><span style="font-family: Verdana;" lang="EN-US">GEF</span><span style="font-family: SimSun;" lang="ZH-CN">设计思路，解剖</span><span style="font-family: Verdana;" lang="EN-US">GEF 1</span></p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: Verdana;" lang="EN-US">GEF</span><span style="font-family: SimSun;" lang="ZH-CN">如同其他的一些</span><span style="font-family: Verdana;" lang="EN-US">framework</span><span style="font-family: SimSun;" lang="ZH-CN">一样，是一个复杂庞大（有点夸张<img src="http://www.cnblogs.com/Emoticons/emwink.gif" align="absmiddle" border="0">）的，当我们想使用驾驭它时，就必须全面的理解其整体构架及其运作过程。这需要我们的毅力和敏锐。旅途开始了</span><span style="font-family: Verdana;" lang="EN-US">&#8230;.</span></p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;"><br>&nbsp;</p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: Verdana;" lang="EN-US">GEF</span><span style="font-family: SimSun;" lang="ZH-CN">主要的任务是针对</span><span style="font-family: Verdana;" lang="EN-US">2D</span><span style="font-family: SimSun;" lang="ZH-CN">图形编辑操作，如下图。</span></p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p><img src="http://www.cnblogs.com/images/cnblogs_com/xdingding/Untitled-1.jpg" border="0"> 
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: SimSun;" lang="ZH-CN">为了使</span><span style="font-family: Verdana;" lang="EN-US">GEF</span><span style="font-family: SimSun;" lang="ZH-CN">能够广泛的用于种类繁多</span><span style="font-family: Verdana;" lang="EN-US">2D</span><span style="font-family: SimSun;" lang="ZH-CN">图形编辑领域，</span><span style="font-family: Verdana;" lang="EN-US">GEF</span><span style="font-family: SimSun;" lang="ZH-CN">就必须建立一个严格的易扩充</span><span style="font-family: Verdana;" lang="EN-US">/</span><span style="font-family: SimSun;" lang="ZH-CN">易组合</span><span style="font-family: Verdana;" lang="EN-US">/</span><span style="font-family: SimSun;" lang="ZH-CN">易重用的</span><span style="font-family: Verdana;" lang="EN-US">MVC</span><span style="font-family: SimSun;" lang="ZH-CN">框架（当然这种分解细化功能对象的方法思想，我们可以用在其它的地方，其它领域、其他语言如</span><span style="font-family: Verdana;" lang="EN-US">C#</span><span style="font-family: SimSun;" lang="ZH-CN">上）。</span></p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p><img src="http://www.cnblogs.com/images/cnblogs_com/xdingding/Untitled-1.gif" border="0"> 
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: SimSun;" lang="ZH-CN">那么如果设计</span><span style="font-family: Verdana;" lang="EN-US"> </span><span style="font-family: SimSun;" lang="ZH-CN">这个</span><span style="font-family: Verdana;" lang="EN-US"> </span><span style="font-family: SimSun;" lang="ZH-CN">严格的</span><span style="font-family: Verdana;" lang="EN-US">MVC</span><span style="font-family: SimSun;" lang="ZH-CN">框架</span><span style="font-family: Verdana;" lang="EN-US">(</span><span style="font-family: SimSun;" lang="ZH-CN">对于</span><span style="font-family: Verdana;" lang="EN-US">Model</span><span style="font-family: SimSun;" lang="ZH-CN">是严格的独立，它不依赖与</span><span style="font-family: Verdana;" lang="EN-US">View</span><span style="font-family: SimSun;" lang="ZH-CN">和</span><span style="font-family: Verdana;" lang="EN-US">Controller) </span><span style="font-family: SimSun;" lang="ZH-CN">以及</span><span style="font-family: Verdana;" lang="EN-US"> </span><span style="font-family: SimSun;" lang="ZH-CN">此框架</span><span style="font-family: Verdana;" lang="EN-US"> </span><span style="font-family: SimSun;" lang="ZH-CN">如何</span><span style="font-family: Verdana;" lang="EN-US"> </span><span style="font-family: SimSun;" lang="ZH-CN">达到</span><span style="font-family: Verdana;" lang="EN-US"> </span><span style="font-family: SimSun;" lang="ZH-CN">易扩充</span><span style="font-family: Verdana;" lang="EN-US">/</span><span style="font-family: SimSun;" lang="ZH-CN">易组合</span><span style="font-family: Verdana;" lang="EN-US">/</span><span style="font-family: SimSun;" lang="ZH-CN">易重用</span><span style="font-family: Verdana;" lang="EN-US"> </span><span style="font-family: SimSun;" lang="ZH-CN">的特性。下面我按照自己拙劣的思路，以麻雀之眼度</span><span style="color: black; font-family: SimSun;" lang="ZH-CN">鸿雁之志啦<img src="http://www.cnblogs.com/Emoticons/emembarrassed.gif" align="absmiddle" border="0"></span></p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: SimSun;" lang="ZH-CN">对于</span><span style="font-family: Verdana;" lang="EN-US">MVC</span><span style="font-family: SimSun;" lang="ZH-CN">中</span></p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt;"><span style="font-weight: bold; color: rgb(153, 51, 0); font-family: Verdana;" lang="EN-US">View</span><span style="font-weight: bold; color: rgb(153, 51, 0); font-family: SimSun;" lang="ZH-CN">部分：</span><span style="font-family: Verdana;" lang="EN-US">GEF</span><span style="font-family: SimSun;" lang="ZH-CN">理所当然要使用自家的东东</span><span style="font-family: Verdana;" lang="EN-US">Draw2D</span><span style="font-family: SimSun;" lang="ZH-CN">。利用</span><span style="font-family: Verdana;" lang="EN-US">Draw2D</span><span style="font-family: SimSun;" lang="ZH-CN">的</span><span style="font-family: Verdana;" lang="EN-US">Figuer</span><span style="font-family: SimSun;" lang="ZH-CN">作为自己的</span><span style="font-family: Verdana;" lang="EN-US">View</span><span style="font-family: SimSun;" lang="ZH-CN">。</span></p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt;"><span style="font-weight: bold; color: rgb(153, 51, 0); font-family: Verdana;" lang="EN-US">Model</span><span style="font-weight: bold; color: rgb(153, 51, 0); font-family: SimSun;" lang="ZH-CN">部分：</span><span style="font-family: SimSun;" lang="ZH-CN">往往内部包含了千差万别、不可预知的商业信息。因此、</span><span style="font-family: Verdana;" lang="EN-US">GEF</span><span style="font-family: SimSun;" lang="ZH-CN">框架应该尽量减少约束（在下面将详细说明约束）。</span></p>
<p style="margin: 0in 0in 0in 0.5in; font-size: 10pt;"><span style="font-weight: bold; color: rgb(153, 51, 0); font-family: Verdana;" lang="EN-US">Controller</span><span style="font-weight: bold; color: rgb(153, 51, 0); font-family: SimSun;" lang="ZH-CN">部分：</span><span style="font-family: Verdana;" lang="EN-US">EditPart/Draw2D</span><span style="font-family: SimSun;" lang="ZH-CN">的</span><span style="font-family: Verdana;" lang="EN-US">Figure/Model</span><span style="font-family: SimSun;" lang="ZH-CN">这三个树状对象模型，在</span><span style="font-family: Verdana;" lang="EN-US">EditPart</span><span style="font-family: SimSun;" lang="ZH-CN">中将建立了与其对应的</span><span style="font-family: Verdana;" lang="EN-US">Draw2D</span><span style="font-family: SimSun;" lang="ZH-CN">的</span><span style="font-family: Verdana;" lang="EN-US">Figure/Model</span><span style="font-family: SimSun;" lang="ZH-CN">结点</span><span style="font-family: Verdana;" lang="EN-US"> </span><span style="font-family: SimSun;" lang="ZH-CN">建立一一关联的关系。</span></p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">这样产生的构架如下：</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p><img src="http://www.cnblogs.com/images/cnblogs_com/xdingding/Untitled-2.gif" border="0"> 
<p style="margin: 0in; font-size: 8pt; color: rgb(102, 102, 102); font-family: 宋体;">&nbsp;</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p><img src="http://www.cnblogs.com/images/cnblogs_com/xdingding/Untitled-2.jpg" border="0"> 
<p style="margin: 0in; font-weight: bold; font-size: 10pt; color: rgb(153, 51, 0); font-family: SimSun;">思考：</p>
<p style="margin: 0in; font-size: 10pt; color: rgb(153, 51, 0);"><span style="font-family: SimSun;" lang="ZH-CN">为什么</span><span style="font-family: Verdana;" lang="EN-US">Controller</span><span style="font-family: SimSun;" lang="ZH-CN">要同</span><span style="font-family: Verdana;" lang="EN-US">View</span><span style="font-family: SimSun;" lang="ZH-CN">一样采用树状结构呢？</span></p>
<p style="margin: 0in; font-size: 10pt; color: rgb(51, 51, 153);"><span style="font-family: SimSun;" lang="ZH-CN">当</span><span style="font-family: Verdana;" lang="EN-US">Controller</span><span style="font-family: SimSun;" lang="ZH-CN">以树状的形式存在，这样便于功能分解（这个道理有点像</span><span style="font-family: Verdana;" lang="EN-US"> </span><span style="font-family: SimSun;" lang="ZH-CN">在类设计中</span><span style="font-family: Verdana;" lang="EN-US"> </span><span style="font-family: SimSun;" lang="ZH-CN">复合优于继承</span><span style="font-family: Verdana;" lang="EN-US"> </span><span style="font-family: SimSun;" lang="ZH-CN">一般）</span></p>
<p style="margin: 0in; font-size: 10pt; color: rgb(51, 51, 153);"><span style="font-family: SimSun;" lang="ZH-CN">这样每一结点的</span><span style="font-family: Verdana;" lang="EN-US">Controller(</span><span style="font-family: SimSun;" lang="ZH-CN">即</span><span style="font-family: Verdana;" lang="EN-US">EditPart) </span><span style="font-family: SimSun;" lang="ZH-CN">仅需要处理</span></p>
<ul style="margin-top: 0in; margin-bottom: 0in; margin-left: 1in; direction: ltr; unicode-bidi: embed;" type="circle">
<li style="margin-top: 0px; font-size: 10pt; margin-bottom: 0px; vertical-align: middle; color: rgb(51, 51, 153);"><span style="font-family: SimSun;">自身逻辑功能</span> 
</li><li style="margin-top: 0px; font-size: 10pt; margin-bottom: 0px; vertical-align: middle; color: rgb(51, 51, 153);"><span style="font-family: SimSun;" lang="ZH-CN">管理子</span><span style="font-family: Verdana;" lang="EN-US">Controller</span> 
</li><li style="margin-top: 0px; font-size: 10pt; margin-bottom: 0px; vertical-align: middle; color: rgb(51, 51, 153);"><span style="font-family: SimSun;" lang="ZH-CN">必要时通知父</span><span style="font-family: Verdana;" lang="EN-US">Controller</span></li></ul>
<p style="margin: 0in; font-size: 10pt; color: rgb(51, 51, 153);"><span style="font-family: SimSun;" lang="ZH-CN">尤其当用户需要在图形界面编辑界面中，需要使用多种不同</span><span style="font-family: Verdana;" lang="EN-US">UI</span><span style="font-family: SimSun;" lang="ZH-CN">行为规则的</span><span style="font-family: Verdana;" lang="EN-US">2D</span><span style="font-family: SimSun;" lang="ZH-CN">元素（例如不同的形状块，不同行为的连线等）组合来完成工作时（例如类似</span><span style="font-family: Verdana;" lang="EN-US">Visio</span><span style="font-family: SimSun;" lang="ZH-CN">这样的界面），这种构架的优势就显露无疑。</span></p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: SimSun;" lang="ZH-CN">未完待续</span><span style="font-family: Verdana;" lang="EN-US">&#8230;.(</span><span style="font-family: SimSun;" lang="ZH-CN">下面要探讨如何产生上述三个树状模型等</span><span style="font-family: SimSun;" lang="ZH-CN">。</span><span style="font-family: Verdana;" lang="EN-US">)</span></p> <img src="http://www.cnblogs.com/xdingding/aggbug/287928.html?type=1" width="1" height="1" alt=""/><p>评论: 5　<a href="http://www.cnblogs.com/xdingding/archive/2005/11/30/287928.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/xdingding/archive/2005/11/30/287928.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56859/" target="_blank">美调查公司称苹果iPad配件成本最低219美元</a><span style="color:gray">(2010-02-10 17:20)</span><br/>· <a href="http://news.cnblogs.com/n/56858/" target="_blank">摩尔庄园：儿童生意密码</a><span style="color:gray">(2010-02-10 17:15)</span><br/>· <a href="http://news.cnblogs.com/n/56857/" target="_blank">Facebook与美国在线合作 整合AIM动态功能</a><span style="color:gray">(2010-02-10 16:41)</span><br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>GEF源码分析（一） eclipse的GEF相关项目说明</title><link>http://www.cnblogs.com/xdingding/archive/2005/11/28/286299.html</link><dc:creator>般若菩提</dc:creator><author>般若菩提</author><pubDate>Mon, 28 Nov 2005 09:41:00 GMT</pubDate><guid>http://www.cnblogs.com/xdingding/archive/2005/11/28/286299.html</guid><description><![CDATA[<p>阅读: 3594 评论: 0 作者: <a href="http://www.cnblogs.com/xdingding/" target="_blank">般若菩提</a> 发表于 2005-11-28 17:41 <a href="http://www.cnblogs.com/xdingding/archive/2005/11/28/286299.html" target="_blank">原文链接</a></p>



<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: Verdana;" lang="EN-US">GEF</span><span style="font-family: SimSun;" lang="ZH-CN">学习笔记（一）</span><span style="font-family: Verdana;" lang="EN-US"> eclipse</span><span style="font-family: SimSun;" lang="ZH-CN">的</span><span style="font-family: Verdana;" lang="EN-US">GEF</span><span style="font-family: SimSun;" lang="ZH-CN">相关项目说明</span></p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: SimSun;" lang="ZH-CN">首先、感谢<a href="http://bjzhanghao.cnblogs.com/">八进制</a>的辛勤劳动和奉献。这几天开始对</span><span style="font-family: Verdana;" lang="EN-US">GEF</span><span style="font-family: SimSun;" lang="ZH-CN">发生兴趣，<a href="http://bjzhanghao.cnblogs.com/category/36197.html"><span style="font-family: SimSun;" lang="ZH-CN">八进制的</span><span style="font-family: Verdana;" lang="EN-US">GEF</span><span style="font-family: SimSun;" lang="ZH-CN">系列</span></a></span><span style="font-family: SimSun;" lang="ZH-CN">对我学这些的帮助很大入门很快。自己也就顺手把周末学习的东西记录下来。帮助后来学人。我会把这几天所学陆续写出希望大家支持。目前、正在为八进制例子发愁，我对</span><span style="font-family: Verdana;" lang="EN-US">NodePart</span><span style="font-family: SimSun;" lang="ZH-CN">增加了</span><span style="font-family: Verdana;" lang="EN-US">ResizeEditPolicy</span><span style="font-family: SimSun;" lang="ZH-CN">，但是不知为何鼠标拖动时有个灰色的区域在随着变化，但鼠标释放时，</span><span style="font-family: Verdana;" lang="EN-US">NodeFigure</span><span style="font-family: SimSun;" lang="ZH-CN">的尺寸不发生变化，是否是因为在</span><span style="font-family: Verdana;" lang="EN-US">refreshVisuals</span><span style="font-family: SimSun;" lang="ZH-CN">中固化了</span><span style="font-family: Verdana;" lang="EN-US">Size</span><span style="font-family: SimSun;" lang="ZH-CN">，代码学习中</span><span style="font-family: Verdana;" lang="EN-US">&#8230;.</span></p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: Verdana;" lang="EN-US">eclipse</span><span style="font-family: SimSun;" lang="ZH-CN">的</span><span style="font-family: Verdana;" lang="EN-US">GEF</span><span style="font-family: SimSun;" lang="ZH-CN">相关项目说明。</span></p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-weight: bold; font-size: 10pt; font-family: SimSun;">各项目的简介：</p>
<p style="margin: 0in;"><img src="http://www.cnblogs.com/images/cnblogs_com/xdingding/temp.jpg" align="bottom" height="222" hspace="5" width="350"></p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: Verdana;" lang="EN-US"><em><strong>Draw2D</strong></em></span><span style="font-family: SimSun;" lang="ZH-CN">：</span><span style="color: navy; font-family: SimSun;" lang="ZH-CN">建立了</span><span style="color: navy; font-family: Verdana;" lang="EN-US">2</span><span style="color: navy; font-family: SimSun;" lang="ZH-CN">维的图形库</span><span style="color: navy; font-family: Verdana;" lang="EN-US">(</span><span style="color: navy; font-family: SimSun;" lang="ZH-CN">树状图形部件</span><span style="color: navy; font-family: Verdana;" lang="EN-US">Figure)</span><span style="color: navy; font-family: SimSun;" lang="ZH-CN">，负责显示</span><span style="color: navy; font-family: Verdana;" lang="EN-US">2</span><span style="color: navy; font-family: SimSun;" lang="ZH-CN">维的图形展示。<br></span></p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: Verdana;" lang="EN-US"><br><strong><em>GEF</em></strong></span><span style="font-family: SimSun;" lang="ZH-CN">：</span><span style="font-family: Verdana;" lang="EN-US"><span style="">&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: SimSun;" lang="ZH-CN">（</span><span style="font-family: arial;" lang="ZH-CN">Graphical Editing Framework</span><span style="font-family: SimSun;" lang="ZH-CN">）</span><span style="color: navy; font-family: SimSun;" lang="ZH-CN">建立标准的</span><span style="color: navy; font-family: Verdana;" lang="EN-US">MVC</span><span style="color: navy; font-family: SimSun;" lang="ZH-CN">构架，代码利用</span><span style="color: navy; font-family: Verdana;" lang="EN-US">Draw2D</span><span style="color: navy; font-family: SimSun;" lang="ZH-CN">作为自己的</span><span style="color: navy; font-family: Verdana;" lang="EN-US">View</span><span style="color: navy; font-family: SimSun;" lang="ZH-CN">部分，主要代码实现复杂的树状</span><span style="color: navy; font-family: Verdana;" lang="EN-US">(</span><span style="color: navy; font-family: SimSun;" lang="ZH-CN">于</span><span style="color: navy; font-family: Verdana;" lang="EN-US">Model</span><span style="color: navy; font-family: SimSun;" lang="ZH-CN">分别对应</span><span style="color: navy; font-family: Verdana;" lang="EN-US">)<span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="color: navy; font-family: SimSun;" lang="ZH-CN">的控制器。实现的框架具有很高的可复用等特性，例如：将图形部件功能分解为多个</span><span style="color: navy; font-family: Verdana;" lang="EN-US">EditPolicy</span><span style="color: navy; font-family: SimSun;" lang="ZH-CN">，这样使用者可以通过</span><span style="color: navy; font-family: Verdana;" lang="EN-US">installEditPolicy</span><span style="color: navy; font-family: SimSun;" lang="ZH-CN">接口来定制，以及扩充自己的某一功能特征。</span></p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: Verdana;" lang="EN-US"><br><strong><em>EMF</em></strong>:<span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: SimSun;" lang="ZH-CN">（</span><span style="font-family: arial;" lang="ZH-CN">Eclipse Modeling Framework</span><span style="font-family: SimSun;" lang="ZH-CN">）</span><span style="color: navy; font-family: SimSun;" lang="ZH-CN">首先在一个轻量级项目以及项目初期开发，</span><span style="color: navy; font-family: Verdana;" lang="EN-US">Model</span><span style="color: navy; font-family: SimSun;" lang="ZH-CN">常常采用拥有</span><span style="color: navy; font-family: Verdana;" lang="EN-US">Property</span><span style="color: navy; font-family: SimSun;" lang="ZH-CN">的</span><span style="color: navy; font-family: Verdana;" lang="EN-US">Java</span><span style="color: navy; font-family: SimSun;" lang="ZH-CN">对象来简单明了表示【即</span><span style="color: navy; font-family: Verdana;" lang="EN-US"> </span><span style="color: navy; font-family: arial;" lang="ZH-CN">Plain Old Java Objects (POJOs)</span><span style="color: navy; font-family: SimSun;" lang="ZH-CN">】。</span><span style="color: navy; font-family: arial;" lang="ZH-CN">E</span><span style="color: navy; font-family: Verdana;" lang="EN-US">MF</span><span style="color: navy; font-family: SimSun;" lang="ZH-CN">定义了一套Ecore元模型，使得</span><span style="color: navy; font-family: Verdana;" lang="EN-US">Model</span><span style="color: navy; font-family: SimSun;" lang="ZH-CN">具有易于维护、易于扩充、易于数据交换等特性的</span><span style="color: navy; font-family: Verdana;" lang="EN-US">Model Framwork</span><span style="color: navy; font-family: SimSun;" lang="ZH-CN">。因此、在实际中大型的项目中往往会采用</span><span style="color: navy; font-family: Verdana;" lang="EN-US">Draw2D</span><span style="color: navy; font-family: SimSun;" lang="ZH-CN">＋</span><span style="color: navy; font-family: Verdana;" lang="EN-US">GEF</span><span style="color: navy; font-family: SimSun;" lang="ZH-CN">＋</span><span style="color: navy; font-family: Verdana;" lang="EN-US">EMF</span><span style="color: navy; font-family: SimSun;" lang="ZH-CN">的方式来实现整体的</span><span style="color: navy; font-family: Verdana;" lang="EN-US">MVC</span><span style="color: navy; font-family: SimSun;" lang="ZH-CN">模式。例如：</span><span style="color: navy; font-family: Verdana;" lang="EN-US">ROSE</span><span style="color: navy; font-family: SimSun;" lang="ZH-CN">的最新版本</span><span style="color: navy; font-family: Verdana;" lang="EN-US"> </span><span style="color: navy; font-family: SimSun;" lang="ZH-CN">IBM.Rational.Software.Architect就是采用了这种构架。</span></p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: Verdana;" lang="EN-US"><br><strong><em>GMF</em></strong></span><span style="font-family: SimSun;" lang="ZH-CN">：</span><span style="font-family: Verdana;" lang="EN-US"><span style="">&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: SimSun;" lang="ZH-CN">（</span><span style="font-family: arial;" lang="ZH-CN">Graphical Modeling Framework </span><span style="font-family: SimSun;" lang="ZH-CN">）</span><span style="color: navy; font-family: SimSun;" lang="ZH-CN">使用了</span><span style="color: navy; font-family: Verdana;" lang="EN-US">GEF</span><span style="color: navy; font-family: SimSun;" lang="ZH-CN">和</span><span style="color: navy; font-family: Verdana;" lang="EN-US">EMF</span><span style="color: navy; font-family: SimSun;" lang="ZH-CN">，建立了两个之间的桥梁框架，同时实现了一些领域上的典范应用，如</span><span style="color: navy; font-family: Verdana;" lang="EN-US">UML</span><span style="color: navy; font-family: SimSun;" lang="ZH-CN">图，甘特图，脑图等。（项目正在进行中这些功能还未完备。可以用来参考以实现自己的一个标准的</span><span style="color: navy; font-family: Verdana;" lang="EN-US">GEF</span><span style="color: navy; font-family: SimSun;" lang="ZH-CN">＋</span><span style="color: navy; font-family: Verdana;" lang="EN-US">EMF</span><span style="color: navy; font-family: SimSun;" lang="ZH-CN">的应用）。</span></p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-weight: bold; font-size: 10pt; font-family: SimSun;">各项目依赖关系：</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in;"><img style="width: 218px; height: 173px;" src="http://www.cnblogs.com/images/cnblogs_com/xdingding/temp2.JPG" border="0" height="159" width="218"></p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">&nbsp;</p>
<p style="margin: 0in; font-size: 10pt; font-family: SimSun;">如上图：使用者可以有以下几种用法：</p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: Verdana;" lang="EN-US">EMF: Model</span><span style="font-family: SimSun;" lang="ZH-CN">管理层</span></p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: Verdana;" lang="EN-US">Draw2D: </span><span style="font-family: SimSun;" lang="ZH-CN">二维图形展现</span></p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: Verdana;" lang="EN-US">Draw2D </span><span style="font-family: SimSun;" lang="ZH-CN">＋</span><span style="font-family: Verdana;" lang="EN-US"> GEF: </span><span style="font-family: SimSun;" lang="ZH-CN">二维图形的简单编辑模块</span></p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: Verdana;" lang="EN-US">Draw2D </span><span style="font-family: SimSun;" lang="ZH-CN">＋</span><span style="font-family: Verdana;" lang="EN-US"> GEF </span><span style="font-family: SimSun;" lang="ZH-CN">＋</span><span style="font-family: Verdana;" lang="EN-US"> EMF</span><span style="font-family: SimSun;" lang="ZH-CN">：</span><span style="font-family: Verdana;" lang="EN-US"> </span><span style="font-family: SimSun;" lang="ZH-CN">二维图形的编辑模块</span></p>
<p style="margin: 0in; font-size: 10pt;"><span style="font-family: Verdana;" lang="EN-US">Draw2D </span><span style="font-family: SimSun;" lang="ZH-CN">＋</span><span style="font-family: Verdana;" lang="EN-US"> GEF </span><span style="font-family: SimSun;" lang="ZH-CN">＋</span><span style="font-family: Verdana;" lang="EN-US"> EMF </span><span style="font-family: SimSun;" lang="ZH-CN">＋</span><span style="font-family: Verdana;" lang="EN-US"> GMF</span><span style="font-family: SimSun;" lang="ZH-CN">：基于</span><span style="font-family: Verdana;" lang="EN-US">GMF</span><span style="font-family: SimSun;" lang="ZH-CN">提供的图形编辑功能之上扩展<br></span></p> <img src="http://www.cnblogs.com/xdingding/aggbug/286299.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/xdingding/archive/2005/11/28/286299.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/xdingding/archive/2005/11/28/286299.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56859/" target="_blank">美调查公司称苹果iPad配件成本最低219美元</a><span style="color:gray">(2010-02-10 17:20)</span><br/>· <a href="http://news.cnblogs.com/n/56858/" target="_blank">摩尔庄园：儿童生意密码</a><span style="color:gray">(2010-02-10 17:15)</span><br/>· <a href="http://news.cnblogs.com/n/56857/" target="_blank">Facebook与美国在线合作 整合AIM动态功能</a><span style="color:gray">(2010-02-10 16:41)</span><br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>项目管理杂谈之打造软件团队</title><link>http://www.cnblogs.com/xdingding/archive/2005/11/21/281178.html</link><dc:creator>般若菩提</dc:creator><author>般若菩提</author><pubDate>Mon, 21 Nov 2005 03:45:00 GMT</pubDate><guid>http://www.cnblogs.com/xdingding/archive/2005/11/21/281178.html</guid><description><![CDATA[<p>阅读: 703 评论: 0 作者: <a href="http://www.cnblogs.com/xdingding/" target="_blank">般若菩提</a> 发表于 2005-11-21 11:45 <a href="http://www.cnblogs.com/xdingding/archive/2005/11/21/281178.html" target="_blank">原文链接</a></p><SPAN style="FONT-SIZE: 8pt">&nbsp;上个月写的PPT。放上来和大家讨论 ：）再挣点分</SPAN> 
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">打造软件团队</P>
<P style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">我们还是一个团队吗？</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">共同认可的明确的目标</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">合理的分工与协作</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">积极的参与</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">互相信任</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">良好的信息沟通</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">高度的凝聚力与民主气氛</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">学习是一种经常化的活动</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">项目团队的作用</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">（1）更有效地实现目标</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">（2）可满足成员心理需要</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">（3）使个人得到更快的进步</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">（4）较强的凝聚力</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">（5）提高决策的质量</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">打造软件团队</P>
<P style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">我们是怎样的团队？</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">不同条件下如何选择适应的团队文化？</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">球队团队文化更适于软件开发团队</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">团队分工交流中我们有那些方式与之不同？</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">打造软件团队</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">项目管理仅仅是项目经理的事情吗？为什么？</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">软件团队中项目经理应该如同带兵打仗军官班长？还是教练？</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">为什么？军官班长和教练在团队运作中有何不同之处？</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">何时需要特种分队的运作方式？</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">打造软件团队</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">项目管理－－驾驶、管理轮船</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">项目经理－－组团、掌舵、管家婆</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">打造软件团队</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">共同认知</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">合作才能成功</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">项目组成员形成团队不仅是项目成功的保证而且也能满足成员的需求</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">打造软件团队</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">激励团队</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">让大家主动投入</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">打造软件团队</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">从项目开始的第一天</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">从项目计划的制定就建立一个共同目标和激励&#8220;团队&#8221;活动</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">打造软件团队</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">认清自我、审视团队</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">量力而行</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">打造软件团队</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">合适的人在合适的位置为项目的基础</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">注意人员比例</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">因才用人善驱驰</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">打造软件团队</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">纵观全局、把握重点</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">找出项目中关键点和关键风险，形成简单有效解决方法</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">项目负责人处于夹缝位置</P>
<P style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">对未来的目标有坚强的意志</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">建立平等气氛团队、形成团队精神</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">要权威，不要霸权</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">去除位置在上心理</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">任劳任怨、不强功名</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">为大家服务、打造轻松有效开发环境</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">认真负责，勇于承认错误，勇于承担责任。</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">对上级尽量承担责任，内部处理具体问题</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">协调大家有效沟通。</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">建立透明的监督检查机制。如特色监督小组、FDD进度板等。</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">从小处建立团队规则。</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">菩萨慈眉＋金刚怒目</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">合理公平分配任务</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">培训引导大家</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">合理安排任务</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">有效的时间管理</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">多多鼓励表扬</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">一切表扬在先，公证有效有限的批评。</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">关怀大家个人生活，了解团员情感状态。</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">不要加班。</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">项目开发过程中，不断监视调整风险列表；</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">善于观察、保持警觉提前发现问题；</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">学会和各种官僚主义等打交道</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">关键时勇于对此质疑、有力抵制</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">勇于面对困难</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">关键时要有壮士断腕式果断，必要时砍去一些十分诱人但不是核心必须的功能点。</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">不能过分追求完美</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">开始和中间阶段要和大家轻松一下，鼓舞士气。（尽管可能有种种滞后压力和不良现状）</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">软件领域更是不断更新成长、没有长期避风港.</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">充满好奇、勇于探索</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">和大家不断共同自我学习培训、提高，相互学习</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">对于新的开发思想和方式，要在小范围实践</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">祝愿大家，通过长期共同努力。打造出一个有共同的认知，熟悉内部工作流程、沟通方式、思考讨论模式等高素质高效的团队</P><img src="http://www.cnblogs.com/xdingding/aggbug/281178.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/xdingding/archive/2005/11/21/281178.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/xdingding/archive/2005/11/21/281178.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56859/" target="_blank">美调查公司称苹果iPad配件成本最低219美元</a><span style="color:gray">(2010-02-10 17:20)</span><br/>· <a href="http://news.cnblogs.com/n/56858/" target="_blank">摩尔庄园：儿童生意密码</a><span style="color:gray">(2010-02-10 17:15)</span><br/>· <a href="http://news.cnblogs.com/n/56857/" target="_blank">Facebook与美国在线合作 整合AIM动态功能</a><span style="color:gray">(2010-02-10 16:41)</span><br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>兄弟姐妹们测试一下你的职业倾向：〉</title><link>http://www.cnblogs.com/xdingding/archive/2005/09/27/245223.html</link><dc:creator>般若菩提</dc:creator><author>般若菩提</author><pubDate>Tue, 27 Sep 2005 07:49:00 GMT</pubDate><guid>http://www.cnblogs.com/xdingding/archive/2005/09/27/245223.html</guid><description><![CDATA[<p>阅读: 950 评论: 3 作者: <a href="http://www.cnblogs.com/xdingding/" target="_blank">般若菩提</a> 发表于 2005-09-27 15:49 <a href="http://www.cnblogs.com/xdingding/archive/2005/09/27/245223.html" target="_blank">原文链接</a></p>&nbsp; 
<P style="MARGIN: 0in; FONT-FAMILY: Simsun; mso-outline-level: 1"><SPAN style="FONT-SIZE: 10pt">网址是：</SPAN><A href="http://www.chinahrd.net/renliziyuan_yjh/qu_MBTI.asp"><SPAN style="FONT-SIZE: 9pt">http://www.chinahrd.net/renliziyuan_yjh/qu_MBTI.asp</SPAN></A></P>
<P style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; MARGIN: 0in; COLOR: white; FONT-FAMILY: ˎ̥; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 9pt; MARGIN: 0in; mso-outline-level: 1"><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">强烈推荐</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">!!!</SPAN></P>
<P style="FONT-SIZE: 9pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 9pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">比较科学客观。大家试验一下。</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; MARGIN: 0in; COLOR: white; FONT-FAMILY: ˎ̥; mso-outline-level: 1"><SPAN style="BACKGROUND: black; mso-highlight: black">我测试的人格类型是： ENTJ（外向，直觉，思维，判断）</SPAN></P>
<P style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; MARGIN: 0in; COLOR: black; FONT-FAMILY: ˎ̥; mso-outline-level: 1">您的工作中的优势：</P>
<P style="FONT-SIZE: 9pt; MARGIN: 0in; COLOR: black; FONT-FAMILY: ˎ̥; mso-outline-level: 1">　　◆ 能看到事情的可能发展情况及潜在的含义</P>
<P style="FONT-SIZE: 9pt; MARGIN: 0in; COLOR: black; FONT-FAMILY: ˎ̥; mso-outline-level: 1">　　◆ 有创造性解决问题的天资，能客观地审查问题</P>
<P style="FONT-SIZE: 9pt; MARGIN: 0in; COLOR: black; FONT-FAMILY: ˎ̥; mso-outline-level: 1">　　◆ 有追求成功的雄心和干劲</P>
<P style="FONT-SIZE: 9pt; MARGIN: 0in; COLOR: black; FONT-FAMILY: ˎ̥; mso-outline-level: 1">　　◆ 对于在工作中胜任和胜出有强烈的动机</P>
<P style="FONT-SIZE: 9pt; MARGIN: 0in; COLOR: black; FONT-FAMILY: ˎ̥; mso-outline-level: 1">　　◆ 自信并且具有天生的领导才能</P>
<P style="FONT-SIZE: 9pt; MARGIN: 0in; COLOR: black; FONT-FAMILY: ˎ̥; mso-outline-level: 1">　　◆ 标准高，工作原则强</P>
<P style="FONT-SIZE: 9pt; MARGIN: 0in; COLOR: black; FONT-FAMILY: ˎ̥; mso-outline-level: 1">　　◆ 能创造方法体系和模式来达到自己的目标</P>
<P style="FONT-SIZE: 9pt; MARGIN: 0in; COLOR: black; FONT-FAMILY: ˎ̥; mso-outline-level: 1">　　◆ 敢于采取大胆行为，有不达到目的誓不罢休的势头</P>
<P style="FONT-SIZE: 9pt; MARGIN: 0in; COLOR: black; FONT-FAMILY: ˎ̥; mso-outline-level: 1">　　◆ 能逻辑地分析地做出决定</P>
<P style="FONT-SIZE: 9pt; MARGIN: 0in; COLOR: black; FONT-FAMILY: ˎ̥; mso-outline-level: 1">　　◆ 擅长从事技术性工作，学习新东西的接受能力强</P>
<P style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; MARGIN: 0in; COLOR: black; FONT-FAMILY: ˎ̥; mso-outline-level: 1">您工作中可能存在的不足：</P>
<P style="FONT-SIZE: 9pt; MARGIN: 0in; COLOR: black; FONT-FAMILY: ˎ̥; mso-outline-level: 1">　　◆ 对那些反应不如你敏捷的人缺乏耐心</P>
<P style="FONT-SIZE: 9pt; MARGIN: 0in; COLOR: black; FONT-FAMILY: ˎ̥; mso-outline-level: 1">　　◆ 唐突，不机智，缺乏交际手段</P>
<P style="FONT-SIZE: 9pt; MARGIN: 0in; COLOR: black; FONT-FAMILY: ˎ̥; mso-outline-level: 1">　　◆ 易于仓促做出决定</P>
<P style="FONT-SIZE: 9pt; MARGIN: 0in; COLOR: black; FONT-FAMILY: ˎ̥; mso-outline-level: 1">　　◆ 对一些世俗的小事没有兴趣</P>
<P style="FONT-SIZE: 9pt; MARGIN: 0in; COLOR: black; FONT-FAMILY: ˎ̥; mso-outline-level: 1">　　◆ 有想去改变那些根本没有必要去改变的事物的倾向</P>
<P style="FONT-SIZE: 9pt; MARGIN: 0in; COLOR: black; FONT-FAMILY: ˎ̥; mso-outline-level: 1">　　◆ 不愿意花时间适当地欣赏、夸奖同事或者别人</P>
<P style="FONT-SIZE: 9pt; MARGIN: 0in; COLOR: black; FONT-FAMILY: ˎ̥; mso-outline-level: 1">　　◆ 对那些既定地问题不愿意再审视</P>
<P style="FONT-SIZE: 9pt; MARGIN: 0in; COLOR: black; FONT-FAMILY: ˎ̥; mso-outline-level: 1">　　◆ 易于过分强调工作，从而损害了家庭的和谐</P><img src="http://www.cnblogs.com/xdingding/aggbug/245223.html?type=1" width="1" height="1" alt=""/><p>评论: 3　<a href="http://www.cnblogs.com/xdingding/archive/2005/09/27/245223.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/xdingding/archive/2005/09/27/245223.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56859/" target="_blank">美调查公司称苹果iPad配件成本最低219美元</a><span style="color:gray">(2010-02-10 17:20)</span><br/>· <a href="http://news.cnblogs.com/n/56858/" target="_blank">摩尔庄园：儿童生意密码</a><span style="color:gray">(2010-02-10 17:15)</span><br/>· <a href="http://news.cnblogs.com/n/56857/" target="_blank">Facebook与美国在线合作 整合AIM动态功能</a><span style="color:gray">(2010-02-10 16:41)</span><br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>CodeReview的思索</title><link>http://www.cnblogs.com/xdingding/archive/2005/09/20/240663.html</link><dc:creator>般若菩提</dc:creator><author>般若菩提</author><pubDate>Tue, 20 Sep 2005 11:31:00 GMT</pubDate><guid>http://www.cnblogs.com/xdingding/archive/2005/09/20/240663.html</guid><description><![CDATA[<p>阅读: 2004 评论: 4 作者: <a href="http://www.cnblogs.com/xdingding/" target="_blank">般若菩提</a> 发表于 2005-09-20 19:31 <a href="http://www.cnblogs.com/xdingding/archive/2005/09/20/240663.html" target="_blank">原文链接</a></p>&nbsp; 
<P style="FONT-SIZE: 10pt; MARGIN: 0in; mso-outline-level: 1"><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">经历很多内部培训程序员的培训方法和课程，感觉相当来说</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">CodeReview</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">这个内部制度，对程序员，尤其是像我这样资历较笨拙之人有很好的技术提高促进作用。</SPAN></P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">但如果仅应付制度，完成过场，则大家只感其累无有利处。</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; mso-outline-level: 1"><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">故而根据本人经验拟定一</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">CodeReview</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">细则，希望对大家有所帮助，同时恳切求大家意见经验。</SPAN></P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; mso-outline-level: 1"><SPAN lang=EN-US style="FONT-FAMILY: Verdana">1</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">、确保一周之内必须有一次至少四十分钟</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">CodeReview</SPAN></P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; mso-outline-level: 1"><SPAN lang=EN-US style="FONT-FAMILY: Verdana">2</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">、各小组人数不要超过</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">10</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">人，每组至少有一人有熟练编辑经验，同时具有局部模块设计能力，并且此人作为</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">小组组长，最好能保证一个</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">CodeReview小组成员</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">来自一个开发组。</SPAN></P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; mso-outline-level: 1"><SPAN lang=EN-US style="FONT-FAMILY: Verdana">3</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">、</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">CodeReview</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">总体粗分可以分为：</SPAN></P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.5in; mso-outline-level: 2"><SPAN lang=EN-US style="FONT-FAMILY: Verdana">A</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">、分析每人代码是否符合编程规范等</SPAN></P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.5in; mso-outline-level: 2"><SPAN lang=EN-US style="FONT-FAMILY: Verdana">B</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">、分析经典有缺陷代码</SPAN></P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.5in; mso-outline-level: 2"><SPAN lang=EN-US style="FONT-FAMILY: Verdana">C</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">、分析经典优秀代码</SPAN></P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.5in; mso-outline-level: 2"><SPAN lang=EN-US style="FONT-FAMILY: Verdana">D</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">、通过分析部分代码来映射反观设计要点</SPAN></P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.5in; mso-outline-level: 2"><SPAN lang=EN-US style="FONT-FAMILY: Verdana">E</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">、分析代码现场实施重构</SPAN></P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; mso-outline-level: 1"><SPAN lang=EN-US style="FONT-FAMILY: Verdana">4</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">、每</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">5</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">次</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">CodeReview</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">中必须保证</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana"> D</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">或</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">E </SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">至少两次</SPAN></P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; mso-outline-level: 1"><SPAN lang=EN-US style="FONT-FAMILY: Verdana">5</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">、每次</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">CodeReview</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">需要提交一份记录，包含到会者会议时间</SPAN></P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; mso-outline-level: 1"><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>A/B/C</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">时罗列讨论到的编程规范等名称</SPAN></P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; mso-outline-level: 1"><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>D</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">时要对讨论的大纲记录</SPAN></P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; mso-outline-level: 1"><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>E</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">时罗列重构方法名称</SPAN></P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; mso-outline-level: 1"><SPAN lang=EN-US style="FONT-FAMILY: Verdana">6</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">、</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">A/B</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">要由组长组织，由小组成员轮流发言。</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">C/E </SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">组长参与讨论。</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">D </SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">组长主持，成员为辅。</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">D/E</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">还需要定期邀请其他有经验人员主持。</SPAN></P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; mso-outline-level: 1"><SPAN lang=EN-US style="FONT-FAMILY: Verdana">7</SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">、</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">A/B/E </SPAN><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">依据的代码，均可以由组员各自都提供，组长挑选。</SPAN></P>
<P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: SimSun; mso-outline-level: 1">&nbsp;</P><img src="http://www.cnblogs.com/xdingding/aggbug/240663.html?type=1" width="1" height="1" alt=""/><p>评论: 4　<a href="http://www.cnblogs.com/xdingding/archive/2005/09/20/240663.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/xdingding/archive/2005/09/20/240663.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56859/" target="_blank">美调查公司称苹果iPad配件成本最低219美元</a><span style="color:gray">(2010-02-10 17:20)</span><br/>· <a href="http://news.cnblogs.com/n/56858/" target="_blank">摩尔庄园：儿童生意密码</a><span style="color:gray">(2010-02-10 17:15)</span><br/>· <a href="http://news.cnblogs.com/n/56857/" target="_blank">Facebook与美国在线合作 整合AIM动态功能</a><span style="color:gray">(2010-02-10 16:41)</span><br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item></channel></rss>