<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mingbo &#187; 总结</title>
	<atom:link href="http://shao.mingbo.de/tag/%e6%80%bb%e7%bb%93/feed/" rel="self" type="application/rss+xml" />
	<link>http://shao.mingbo.de</link>
	<description>包括教育技术，编程，互联网等方面的文章及随想。</description>
	<lastBuildDate>Thu, 26 Aug 2010 02:57:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>设计模式学习总结</title>
		<link>http://shao.mingbo.de/2010/05/09/design-pattern/</link>
		<comments>http://shao.mingbo.de/2010/05/09/design-pattern/#comments</comments>
		<pubDate>Sun, 09 May 2010 11:39:22 +0000</pubDate>
		<dc:creator>邵 明博</dc:creator>
				<category><![CDATA[设计模式]]></category>
		<category><![CDATA[总结]]></category>

		<guid isPermaLink="false">http://shao.mingbo.de/?p=675</guid>
		<description><![CDATA[这段时间更新了很多篇有关设计模式的学习笔记，收获不算太多，但起码让我对面向对象编程有了一个更深刻的认识。模式与模式之间没有界限分明的三八线，也没有一个万能的模式主宰了Programmer 的编程思维。模式学习到最后，Visitor 与Strategy 的笔记也实在没有动力更新下去，只打算在这篇设计模式笔记的大总结里，稍作复习。 不要问我还记得哪些模式的哪些细节，他们无非是，1）面向接口编程；2）使用对象组合来解耦，努力避免继承；3）在易碎变化的地方进行封装。把面向的对象的精髓“封装、继承、多态”发挥到一定境界，就是模式了。 在学习设计模式之前，其实还有一点畏惧的情绪在里面。学习的过程中，发现，这样的模式，全然都是前辈们的经验。学习完之后，感觉自己还是内功不够，比如：数据结构。虽然，目前把这些模式都领略了一遍，但可以很清楚的意识到很多内在的精髓不一定内化到自己的脑袋里。今后在工程中可能还需要回过头来重新学习。这里把一个提纲式的笔记列一下： 创建模式 Singleton模式解决的是实体对象个数的问题。除了Singleton之外，其他创建型模式解决的都是new所带来的耦合关系。 Factory Method, Abstract Factory, Builder都需要一个额外的工厂类来负责实例化“易变对象”，而Prototype则是通过原型（一个特殊的工厂类）来克隆“易变对象”。 结构模式 Adapter模式注重转换接口，将不吻合的接口适配对接 Bridge模式注重分离接口与其实现，支持多维度变化 Composite模式注重统一接口，将“一对多”的关系转化为“一对一”的关系 Decorator模式注重稳定接口，在此前提下为对象扩展功能 Facade模式注重简化接口，简化组件系统与外部客户程序的依赖关系 Flyweight 模式注重保留接口，在内部使用共享技术对对象存储进行优化 Proxy 模式注重假借接口，增加间接层来实现灵活控制 行为模式 Template Method模式封装算法结构，支持算法子步骤变化 State模式注重封装与状态相关的行为，支持状态的变化 Memento模式注重封装对象状态变化，支持状态保存/恢复 Mediator模式注重封装对象间的交互，支持对象交互的变化 Chain Of Responsibility模式注重封装对象责任，支持责任的变化 Command模式注重将请求封装为对象，支持请求的变化 Interpreter模式注重封装特定领域变化，支持领域问题的频繁变化 Observer模式注重封装对象通知，支持通信对象的变化 Visitor模式注重封装对象操作变化，支持在运行时为类层次结构动态添加新的操作。 Strategy模式注重封装算法，支持算法的变化 Iterator 模式注重封装集合对象内部结构，支持集合的变化 这段时间的学习告一段落，我想，这更是一个新的起点，对于如何阅读、学习别人的代码，会有很大的提升。 相关文章2010年05月6日 -- 初尝State 模式2010年05月6日 -- 初尝Memento 模式2010年05月5日 -- 初尝Chain Of Responsibility2010年05月4日 -- 初尝Observer 模式2010年05月4日 -- [...]]]></description>
			<content:encoded><![CDATA[<p>这段时间更新了很多篇有关<a href="http://shao.mingbo.de/category/csharp%e7%ac%94%e8%ae%b0/%e8%ae%be%e8%ae%a1%e6%a8%a1%e5%bc%8f/" target="_blank">设计模式</a>的学习笔记，收获不算太多，但起码让我对面向对象编程有了一个更深刻的认识。模式与模式之间没有界限分明的三八线，也没有一个万能的模式主宰了Programmer 的编程思维。模式学习到最后，Visitor 与Strategy 的笔记也实在没有动力更新下去，只打算在这篇设计模式笔记的大总结里，稍作复习。</p>
<p>不要问我还记得哪些模式的哪些细节，他们无非是，1）面向接口编程；2）使用对象组合来解耦，努力避免继承；3）在易碎变化的地方进行封装。把面向的对象的精髓“封装、继承、多态”发挥到一定境界，就是模式了。</p>
<p>在学习设计模式之前，其实还有一点畏惧的情绪在里面。学习的过程中，发现，这样的模式，全然都是前辈们的经验。学习完之后，感觉自己还是内功不够，比如：数据结构。虽然，目前把这些模式都领略了一遍，但可以很清楚的意识到很多内在的精髓不一定内化到自己的脑袋里。今后在工程中可能还需要回过头来重新学习。这里把一个提纲式的笔记列一下：</p>
<div id="_mcePaste">
<div id="_mcePaste"><strong>创建模式</strong></div>
<div id="_mcePaste">
<ul>
<li><a href="http://shao.mingbo.de/2010/03/15/singlton-at-the-first-sight/" target="_blank">Singleton模式</a>解决的是实体对象个数的问题。除了Singleton之外，其他创建型模式解决的都是new所带来的耦合关系。</li>
<li><a href="http://shao.mingbo.de/2010/04/16/factory-method-pattern/" target="_blank">Factory Method</a>, <a href="http://shao.mingbo.de/2010/03/18/abstract-factory-at-the-first-sight/" target="_blank">Abstract Factory</a>,<a href="http://shao.mingbo.de/2010/04/16/builder-pattern/" target="_blank"> Builder</a>都需要一个额外的工厂类来负责实例化“易变对象”，而<a href="http://shao.mingbo.de/2010/04/15/prototype-pattern/" target="_blank">Prototype</a>则是通过原型（一个特殊的工厂类）来克隆“易变对象”。</li>
</ul>
</div>
<div id="_mcePaste"></div>
<div id="_mcePaste"><strong>结构模式</strong></div>
<div id="_mcePaste">
<ul>
<li><a href="http://shao.mingbo.de/2010/04/22/adaptor-pattern/" target="_blank">Adapter模式</a>注重转换接口，将不吻合的接口适配对接</li>
<li><a href="http://shao.mingbo.de/2010/04/24/bridge-pattern/" target="_blank">Bridge模式</a>注重分离接口与其实现，支持多维度变化</li>
<li><a href="http://shao.mingbo.de/2010/04/14/composite-pattern/" target="_blank">Composite模式</a>注重统一接口，将“一对多”的关系转化为“一对一”的关系</li>
<li><a href="http://shao.mingbo.de/2010/04/24/decorator-pattern/" target="_blank">Decorator模式</a>注重稳定接口，在此前提下为对象扩展功能</li>
<li><a href="http://shao.mingbo.de/2010/04/26/facade-pattern/" target="_blank">Facade模式</a>注重简化接口，简化组件系统与外部客户程序的依赖关系</li>
<li><a href="http://shao.mingbo.de/2010/04/27/flyweight-pattern/" target="_blank">Flyweight 模式</a>注重保留接口，在内部使用共享技术对对象存储进行优化</li>
<li><a href="http://shao.mingbo.de/2010/04/27/proxy-pattern/" target="_blank">Proxy 模式</a>注重假借接口，增加间接层来实现灵活控制</li>
</ul>
</div>
<div id="_mcePaste"></div>
<div id="_mcePaste"><strong>行为模式</strong></div>
<div id="_mcePaste">
<ul>
<li><a href="http://shao.mingbo.de/2010/04/27/template-pattern/" target="_blank">Template Method模式</a>封装算法结构，支持算法子步骤变化</li>
<li><a href="http://shao.mingbo.de/2010/05/06/state-pattern/" target="_blank">State模式</a>注重封装与状态相关的行为，支持状态的变化</li>
<li><a href="http://shao.mingbo.de/2010/05/06/memento-pattern/" target="_blank">Memento模式</a>注重封装对象状态变化，支持状态保存/恢复</li>
<li><a href="http://shao.mingbo.de/2010/05/04/mediator-pattern/" target="_blank">Mediator模式</a>注重封装对象间的交互，支持对象交互的变化</li>
<li><a href="http://shao.mingbo.de/2010/05/05/chain-of-responsibility-pattern/" target="_blank">Chain Of Responsibility模式</a>注重封装对象责任，支持责任的变化</li>
<li><a href="http://shao.mingbo.de/2010/04/28/command-pattern/" target="_blank">Command模式</a>注重将请求封装为对象，支持请求的变化</li>
<li><a href="http://shao.mingbo.de/2010/05/01/interpretor-pattern/" target="_blank">Interpreter模式</a>注重封装特定领域变化，支持领域问题的频繁变化</li>
<li><a href="http://shao.mingbo.de/2010/05/04/observer-patter/" target="_blank">Observer模式</a>注重封装对象通知，支持通信对象的变化</li>
<li>Visitor模式注重封装对象操作变化，支持在运行时为类层次结构动态添加新的操作。</li>
<li>Strategy模式注重封装算法，支持算法的变化</li>
<li>Iterator 模式注重封装集合对象内部结构，支持集合的变化</li>
</ul>
</div>
<p>这段时间的学习告一段落，我想，这更是一个新的起点，对于如何阅读、学习别人的代码，会有很大的提升。</p>
</div>
<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li>2010年05月6日 -- <a href="http://shao.mingbo.de/2010/05/06/state-pattern/" title="初尝State 模式">初尝State 模式</a></li><li>2010年05月6日 -- <a href="http://shao.mingbo.de/2010/05/06/memento-pattern/" title="初尝Memento 模式">初尝Memento 模式</a></li><li>2010年05月5日 -- <a href="http://shao.mingbo.de/2010/05/05/chain-of-responsibility-pattern/" title="初尝Chain Of Responsibility">初尝Chain Of Responsibility</a></li><li>2010年05月4日 -- <a href="http://shao.mingbo.de/2010/05/04/observer-patter/" title="初尝Observer 模式">初尝Observer 模式</a></li><li>2010年05月4日 -- <a href="http://shao.mingbo.de/2010/05/04/mediator-pattern/" title="初尝Mediator 模式">初尝Mediator 模式</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://shao.mingbo.de/2010/05/09/design-pattern/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WMEncoder批处理功能实现</title>
		<link>http://shao.mingbo.de/2009/10/18/wmencoder-batch-function-completed/</link>
		<comments>http://shao.mingbo.de/2009/10/18/wmencoder-batch-function-completed/#comments</comments>
		<pubDate>Sat, 17 Oct 2009 17:20:30 +0000</pubDate>
		<dc:creator>邵 明博</dc:creator>
				<category><![CDATA[我的碎碎念]]></category>
		<category><![CDATA[教育技术学]]></category>
		<category><![CDATA[ipv6]]></category>
		<category><![CDATA[总结]]></category>
		<category><![CDATA[批处理]]></category>

		<guid isPermaLink="false">http://shao.mingbo.de/?p=138</guid>
		<description><![CDATA[这段时间的学习和工作很难用乐观的言语表述。从接到这个任务的那天开始，不知不觉的，提交一份完整可用的代码变成了我生活的中心。可怕的是，周围的人都用异样的眼光看待我宅代码的行为。我能猜到他们在想什么，但，我就是不自觉的被这个中心左右着。 如果接下来的周一和张博后的交流没有问题，那么这个批处理功能的实现，应该就是我功成身退的礼物。第一次做转换工具，第一次看全英文的sdk，第一次和博后级的牛人交流，第一次用c#建立一个工程文件夹，很多个第一次都将变成美好的回忆&#8230; 很自然地，做项目的过程中，看到了自己很多知识还很不到位：本科时，《操作系统》完全没怎么重视，只是等到考试才临时抱佛脚，而今遇到有关线程的问题，又要重头来过；基础的算法思想没有打牢，没有打牢的直接后果是，代码臃肿而低效。工具语言没摸透，使用起来，生搬硬套&#8230;哎，说得自己一无是处了。 不过好在，接下来的日子里，我还有有机会&#8230;呃，希望在转角，命运在手中，笑一个吧？ update: 今天把技术文档写了下，呃，这里是在线浏览地址 相关文章2010年05月9日 -- 设计模式学习总结2010年02月26日 -- 超文本转移协议与万维网高速缓存2009年10月10日 -- 六十岁的中国，二十岁的我(2)2009年09月28日 -- 为什么我和别人不一样]]></description>
			<content:encoded><![CDATA[<p><a href="http://shao.mingbo.de/wp-content/uploads/2009/10/newTool.jpg"><img class="alignleft size-thumbnail wp-image-139" title="批处理" src="http://shao.mingbo.de/wp-content/uploads/2009/10/newTool-150x150.jpg" alt="批处理" width="150" height="150" /></a>这段时间的学习和工作很难用乐观的言语表述。从接到这个任务的那天开始，不知不觉的，提交一份完整可用的代码变成了我生活的中心。可怕的是，周围的人都用异样的眼光看待我宅代码的行为。我能猜到他们在想什么，但，我就是不自觉的被这个中心左右着。</p>
<p>如果接下来的周一和张博后的交流没有问题，那么这个批处理功能的实现，应该就是我功成身退的礼物。第一次做转换工具，第一次看全英文的sdk，第一次和博后级的牛人交流，第一次用c#建立一个工程文件夹，很多个第一次都将变成美好的回忆&#8230;</p>
<p>很自然地，做项目的过程中，看到了自己很多知识还很不到位：本科时，《操作系统》完全没怎么重视，只是等到考试才临时抱佛脚，而今遇到有关线程的问题，又要重头来过；基础的算法思想没有打牢，没有打牢的直接后果是，代码臃肿而低效。工具语言没摸透，使用起来，生搬硬套&#8230;哎，说得自己一无是处了。</p>
<p>不过好在，接下来的日子里，我还有有机会&#8230;呃，希望在转角，命运在手中，笑一个吧？</p>
<p>update: 今天把技术文档写了下，呃，这里是<a href="http://docs.google.com/fileview?id=0B-rB_h6wwwpEODNlMzEwM2UtMDhjNi00ZjVkLTg0ZmItY2MzNDZkMDZiZmVm&amp;hl=zh_CN" target="_blank">在线浏览地址</a></p>
<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li>2010年05月9日 -- <a href="http://shao.mingbo.de/2010/05/09/design-pattern/" title="设计模式学习总结">设计模式学习总结</a></li><li>2010年02月26日 -- <a href="http://shao.mingbo.de/2010/02/26/proxy-server-with-web-cache-and-http/" title="超文本转移协议与万维网高速缓存">超文本转移协议与万维网高速缓存</a></li><li>2009年10月10日 -- <a href="http://shao.mingbo.de/2009/10/10/ipv6-web-auto-adaptation/" title="六十岁的中国，二十岁的我(2)">六十岁的中国，二十岁的我(2)</a></li><li>2009年09月28日 -- <a href="http://shao.mingbo.de/2009/09/28/why-not-the-same-as-others/" title="为什么我和别人不一样">为什么我和别人不一样</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://shao.mingbo.de/2009/10/18/wmencoder-batch-function-completed/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
