Open Java Project

Keep it simple, Stupid, Less is more

nelson_tu ID:chenyun2000
441343次访问,排名104好友1人,关注者4
chenyun2000的文章
原创 189 篇
翻译 0 篇
转载 10 篇
评论 273 篇
nelson_tu的公告


自从2005年04月05日
(061800)

Dynamic Script Language
DOTNET2_BEGINNER

最近评论
oliver1212:index.jsp和login.jsp别忘了加上<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>
mghueh:wow power leveling
mghueh:wow power leveling
mghueh:wow power leveling
wdlfellow:天下闻名还行
文章分类
收藏
相册
2008
AJAX
Ajax.NET(RSS)
AjaxFaces(RSS)
Ajaxian(RSS)
BACKBASE(RSS)
DWR(RSS)
Prototype(RSS)
SAJAX(php/perl/python)(RSS)
AOP&AspectJ
AspectWerkz(RSS)
eBook&Articles
Codehaus Docs(RSS)
CodeZoo(RSS)
FlazX(RSS)
huihoo(灰狐)(RSS)
IBM developerWorks(RSS)
ITPUB论坛(RSS)
java.net articles(RSS)
Onjava.com(RSS)
TheServerSide(RSS)
中国E书网(RSS)
Eclipse
Eclipse Article(RSS)
Eclipse.org(RSS)
Plugins(RSS)
中国Eclipse社区(RSS)
Groovy
Groovy开源项目(RSS)
Just Groovy(RSS)
J2EE Framework
Apache Geronimo(RSS)
Avalon Project(RSS)
Spring(RSS)
Spring 中文论坛(RSS)
Open Project
ActiveMQ(RSS)
QDox(RSS)
Open Source
Apache Project(RSS)
Caucho(RSS)
Codehaus.org(RSS)
dev2dev(RSS)
Exadel(RSS)
JBoss(RSS)
Jetty(RSS)
Sourceforge.net(RSS)
ORM&DAO
Cayenne(RSS)
Hibernate.org(RSS)
Hibernate中文网(RSS)
iBATIS(RSS)
PDF
iText(RSS)
Template Engine
Freemarker(RSS)
Velocity Project(RSS)
Xkins(RSS)
Web MVC Framework
Aurora MVC(RSS)
OpenSymphony(RSS)
Wicket Project(RSS)
其它
上海城市交通(RSS)
西安信息资源网(RSS)
友情blog
Craig's stack trace(RSS)
HongSoft 动力(RSS)
Ken Egervari(RSS)
Open Java Project (BlogJava)(RSS)
一地鸡毛(RSS)
图图日记(RSS)
星月夜(RSS)
邢红瑞的blog(RSS)
存档
软件项目交易
订阅我的博客
XML聚合  FeedSky

原创 Avalon基本概念(1)-面向组件编程(COP)收藏

新一篇: Avalon基本概念(2)-Avalon中的COP | 旧一篇: WebWork2教程(中文版)补充-例子源代码下载

面向组件编程(COP

COPOOP更进一步。通常OOP将数据对象组织到实体中。这种方法具有很多优点。但是,OOP有一个大的限制:对象之间的相互依赖关系。去掉这个限制的一个好的想法就是组件。组件和一般对象之间的关键区别是组件是可以替代的。

任何使用Avalon原理开发的系统都可以称为基于组件设计(CBD)的。COPCBD不是同一概念。CBD是指一个系统如何设计,而COP是指一个系统如何实现。

 

设计组件

编写一个组件的第一步就是决定如何使用它。如果你有一个可以在很多不同上下文环境中使用的强大组件,就可以经常被重用。这些上下文环境包括在命令行执行组件、作为子系统的一个部分,或作为Avalon的一个完整部分。

既然所有组件都是Avalon的一个部分,那么所要做的就是定义它们的接口(role)。为系统的其它部分标识和文档化契约是很重要的。我所指的契约是依存关系的顺序、什么是它在运行时所需要的,什么是它提供给系统其它部分的。

在开始阶段仔细计划是很重要的。因为你需要尽可能通用而又能精确表示它的角色的接口。

因为上下文环境可能是Avalon的一个部分,所以你必须注意按Avalon的方式使用这些组件。这意味着在地定义关系时,应该遵循Avalon的关系顺序。

在设计一个能在命令行运行的组件时,尽量从组件中分离main()函数。这是为了维护Avalonpassive API做的强制。按照前面的方式设计组件,你会使main()函数所要做的最小化。

遵循下面的习惯:拥有一个专门处理main()函数的对象,包括解析命令行参数和初始化组件。使用这种方式在每个上下文环境中使用组件,在debug时,会最小化需要查找的位置。

发表于 @ 2004年07月12日 17:34:00|评论(loading...)|编辑

新一篇: Avalon基本概念(2)-Avalon中的COP | 旧一篇: WebWork2教程(中文版)补充-例子源代码下载

评论

#chenyun2000 发表于2004-07-16 13:33:00  IP: 218.80.208.*
我在word中写好了贴上去的。我这边的系统不是中文环境,字体由问题。
#我不近视 发表于2004-07-15 17:08:00  IP: 219.133.232.*
你这里的文章干吗都设置那么小字体? 很难看清楚啊.
#泰伯子仪 发表于2004-08-03 10:19:00  IP: 218.94.94.*
你这里的东西不错,就是字看得不舒服
给你一段css,设置一下吧
body,p,table,tr,td,div,input
{
font-family: georgia,Courier New, serif;
font-size: 10.5pt;
line-height: 14pt;
scrollbar-base-color: #014E82;
scrollbar-arrow-color: #014E82;
}
#nelson_tu 发表于2004-08-03 10:56:00  IP: 218.80.208.*
谢谢泰伯子仪 的支持!
发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © nelson_tu