<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://blog.csdn.net/cll0320/category/252552.aspx</link><description /><dc:language>zh-CN</dc:language><lastUpdateTime>Mon, 09 Jul 2007 15:24:20 GMT</lastUpdateTime><ttl>60</ttl><item><dc:creator>陈亮亮</dc:creator><title>插件系统[8]·系统组装策略分析</title><link>http://blog.csdn.net/cll0320/archive/2007/01/10/1479483.aspx</link><pubDate>Wed, 10 Jan 2007 20:10:00 GMT</pubDate><guid>http://blog.csdn.net/cll0320/archive/2007/01/10/1479483.aspx</guid><wfw:comment>http://blog.csdn.net/cll0320/comments/1479483.aspx</wfw:comment><comments>http://blog.csdn.net/cll0320/archive/2007/01/10/1479483.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/cll0320/comments/commentRss/1479483.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1479483</trackback:ping><description> 之前写过不少关于插件系统的文章，有介绍框架的，也有介绍插件结构的。今天主要是分析一下插件系统的组装过程。

组装包括两个部分，界面的装配、插件交互关系的装配。下面会介绍三种组装策略，并简单分析一下不同组装策略的差异。&lt;img src ="http://blog.csdn.net/cll0320/aggbug/1479483.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>陈亮亮</dc:creator><title>插件系统[7]·隐喻的力量</title><link>http://blog.csdn.net/cll0320/archive/2006/12/19/1449640.aspx</link><pubDate>Tue, 19 Dec 2006 23:23:00 GMT</pubDate><guid>http://blog.csdn.net/cll0320/archive/2006/12/19/1449640.aspx</guid><wfw:comment>http://blog.csdn.net/cll0320/comments/1449640.aspx</wfw:comment><comments>http://blog.csdn.net/cll0320/archive/2006/12/19/1449640.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blog.csdn.net/cll0320/comments/commentRss/1449640.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1449640</trackback:ping><description>隐喻是由团队提出一个程序工作原理的公共景象。它可以帮助我们从整体上把握系统的全局，使得描述问题非常直观。

团队在做插件系统的时候，我们拿到的只有Rose图，和一些基本设计的思路文档，但对于插件系统究竟是什么，每个人的理解深度、方式都不一样。究其原因，就是因为我们没有一个直观，形象的描述系统的一个东西。概要设计文档是不能算的，太粗且不形象。这个时候我们需要的就是一个隐喻系统，帮助团队统一认识，使得交流更加有效，或者更加有趣。&lt;img src ="http://blog.csdn.net/cll0320/aggbug/1449640.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>陈亮亮</dc:creator><title>插件系统[6]·玩积木的程序员</title><link>http://blog.csdn.net/cll0320/archive/2006/12/13/1442072.aspx</link><pubDate>Wed, 13 Dec 2006 23:11:00 GMT</pubDate><guid>http://blog.csdn.net/cll0320/archive/2006/12/13/1442072.aspx</guid><wfw:comment>http://blog.csdn.net/cll0320/comments/1442072.aspx</wfw:comment><comments>http://blog.csdn.net/cll0320/archive/2006/12/13/1442072.aspx#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://blog.csdn.net/cll0320/comments/commentRss/1442072.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1442072</trackback:ping><description>粗略地可以将程序员分成两类：做积木、与玩积木的人。

做积木的人指的就是那些自己写控件、插件的人，玩积木的人指的就是将各种各样控件或插件组装成系统的人。在业界大多数人都会认可那些自己写控件的，对于“只会拖拖控件”的程序员则不屑一顾。

我们很难说做积木与玩积木的人哪一个水平高，因为需要的是两种不同的能力。做积木的人需要对底层计算机技术有深刻的了解，而玩积木的人则需要对业务、用户需求和整体框架有清楚的认识。两个层面的人都需要有优化的意识。&lt;img src ="http://blog.csdn.net/cll0320/aggbug/1442072.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>陈亮亮</dc:creator><title>插件系统[5]·系统集成方案</title><link>http://blog.csdn.net/cll0320/archive/2006/11/21/1400692.aspx</link><pubDate>Tue, 21 Nov 2006 08:03:00 GMT</pubDate><guid>http://blog.csdn.net/cll0320/archive/2006/11/21/1400692.aspx</guid><wfw:comment>http://blog.csdn.net/cll0320/comments/1400692.aspx</wfw:comment><comments>http://blog.csdn.net/cll0320/archive/2006/11/21/1400692.aspx#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://blog.csdn.net/cll0320/comments/commentRss/1400692.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1400692</trackback:ping><description>一切都是为了更加简单。

从函数到函数库，然后到类，然后到插件，都是因为我们的软件系统日益复杂，人脑毕竟有限，不能同时处理那么多的信息量，所以采用分而治之的方法来管理。
今年已经研究了一年的插件系统，从最开始的懵懵懂懂到现在能有些经验和大家分享，这个过程本身就是很有意思的。

最开始系统中有了十几个插件，经过几个月的慢慢发展，到了大几十个，甚至上百个，这个数量就有些令人头晕了。不过更加麻烦的还不是这近百个插件组装而成的系统，而是某一个插件系统需要调用另外的一个或多个插件系统。这样的话，插件的数量就在100的基数上开始翻倍。

如何做插件系统中的整合成了一个紧急的课题。&lt;img src ="http://blog.csdn.net/cll0320/aggbug/1400692.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>陈亮亮</dc:creator><title>插件系统[4]·关系模式-万能观察者</title><link>http://blog.csdn.net/cll0320/archive/2006/11/20/1400266.aspx</link><pubDate>Mon, 20 Nov 2006 23:02:00 GMT</pubDate><guid>http://blog.csdn.net/cll0320/archive/2006/11/20/1400266.aspx</guid><wfw:comment>http://blog.csdn.net/cll0320/comments/1400266.aspx</wfw:comment><comments>http://blog.csdn.net/cll0320/archive/2006/11/20/1400266.aspx#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://blog.csdn.net/cll0320/comments/commentRss/1400266.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1400266</trackback:ping><description>插件的独立性与插件之间的依赖关系是插件框架必须解决的问题。

其中独立性与插件的划分粒度相关，将每一个插件实现为一个dll，从物理层面强制保证了插件的独立性。插件之间的依赖关系是要解决的更加复杂的一个问题。&lt;img src ="http://blog.csdn.net/cll0320/aggbug/1400266.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>陈亮亮</dc:creator><title>插件系统[3]·系统中的插件和控件</title><link>http://blog.csdn.net/cll0320/archive/2006/10/18/1340032.aspx</link><pubDate>Wed, 18 Oct 2006 20:03:00 GMT</pubDate><guid>http://blog.csdn.net/cll0320/archive/2006/10/18/1340032.aspx</guid><wfw:comment>http://blog.csdn.net/cll0320/comments/1340032.aspx</wfw:comment><comments>http://blog.csdn.net/cll0320/archive/2006/10/18/1340032.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blog.csdn.net/cll0320/comments/commentRss/1340032.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1340032</trackback:ping><description>插件可以封装一定的业务，同样控件也具有封装性。
可以说控件的出现大大简化了我们开发的工作量。作为一个插件系统来说，实现一个通用的插件能在更大粒度上进行复用。插件是比控件更加高层的一种模块封装方式。
插件和控件有相同的地方：封装和复用。本文分析了它们的异同，并且提出另外一个比较有趣的概念——伪插件。请大家继续往下读一读。&lt;img src ="http://blog.csdn.net/cll0320/aggbug/1340032.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>陈亮亮</dc:creator><title>插件系统[2]·配置还是派生</title><link>http://blog.csdn.net/cll0320/archive/2006/10/10/1329237.aspx</link><pubDate>Tue, 10 Oct 2006 20:39:00 GMT</pubDate><guid>http://blog.csdn.net/cll0320/archive/2006/10/10/1329237.aspx</guid><wfw:comment>http://blog.csdn.net/cll0320/comments/1329237.aspx</wfw:comment><comments>http://blog.csdn.net/cll0320/archive/2006/10/10/1329237.aspx#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://blog.csdn.net/cll0320/comments/commentRss/1329237.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1329237</trackback:ping><description>在插件系统中，每一个插件都有自己的一些配置信息，比如说图标信息、界面显示信息等。如果以前做了一个插件，发现另外一个插件和它的功能差不多的时候该怎么办呢？可以用配置文件将不同的地方描述出来，也可以在以前的基础上做一个派生类。到底是用配置还是用派生，这个问题就有趣了。&lt;img src ="http://blog.csdn.net/cll0320/aggbug/1329237.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>陈亮亮</dc:creator><title>插件系统[1]·插件系统框架分析</title><link>http://blog.csdn.net/cll0320/archive/2006/09/21/1262717.aspx</link><pubDate>Thu, 21 Sep 2006 23:50:00 GMT</pubDate><guid>http://blog.csdn.net/cll0320/archive/2006/09/21/1262717.aspx</guid><wfw:comment>http://blog.csdn.net/cll0320/comments/1262717.aspx</wfw:comment><comments>http://blog.csdn.net/cll0320/archive/2006/09/21/1262717.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/cll0320/comments/commentRss/1262717.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1262717</trackback:ping><description>普通的系统，在编译发布之后，系统就不允许进行更改或扩充了，如果要进行某个功能的扩充，则必须要修改代码重新编译发布。使用插件可以很好地解决这个问题。
Eclipse插件系统是非常成功的插件框架结构。在这里着重分析另外的一个插件系统，并与Eclipse系统结构进行对比分析。&lt;img src ="http://blog.csdn.net/cll0320/aggbug/1262717.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>