??xml version="1.0" encoding="utf-8" standalone="yes"?>男人的天堂免费在线视频,欧美视频一区二区,欧美精品在线免费观看http://www.aygfsteel.com/yeagls/zh-cnSat, 17 May 2025 16:50:59 GMTSat, 17 May 2025 16:50:59 GMT60globushttp://www.aygfsteel.com/yeagls/archive/2007/11/03/157904.htmlyySat, 03 Nov 2007 03:56:00 GMThttp://www.aygfsteel.com/yeagls/archive/2007/11/03/157904.htmlhttp://www.aygfsteel.com/yeagls/comments/157904.htmlhttp://www.aygfsteel.com/yeagls/archive/2007/11/03/157904.html#Feedback0http://www.aygfsteel.com/yeagls/comments/commentRss/157904.htmlhttp://www.aygfsteel.com/yeagls/services/trackbacks/157904.htmlGlobus开源网格基q_?br /> http://www.media.edu.cn 2007-10-22 作者:(x)
|格技术出C20世纪90q代Q其核心(j)思想是:(x)“整个因特|就是一台计机Q?#8221;Globus Tookit工具包来源于Globus目QGlobus目是国际上最有媄(jing)响力的与|格计算相关的项目之一Q是由来自世界各地关注网格技术的研究人员和开发h员共同努力的成果?/font>

|格技术出C20世纪90q代Q它的目的是惛_用高速互联网把分布于不同地理位置的计机、数据库、存储器和Y件等资源q成整体Q就像一台超U计机一P为用h供一体化信息服务Q其核心(j)思想是:(x)“整个因特|就是一台计机Q?#8221;

由全球网D坛(GGFQ下属Globus目l成员联合开发的Globus Toolkit标准工具包,已被公认为当前徏立网格系l和开发网DY件事实的参考标准?/font>

最q一两年Q?#8220;|格”q个词持l升温。你如果用Google搜烦(ch)“|格”Q可以看?万个l果Q你?x)发现除了(jin)美国、欧z对|格的研I投入了(jin)巨资Q我们国家也通过“863”、自然科学基金等讄?jin)网g,对网格有C元的投资Q你q可以看刎ͼ有关|格的活动高潮P赗?/font>

所有这些都说明?jin)网格已l?zhn)然的走进了(jin)千家万P它正被越来越多的识和熟?zhn)。在因特|的刺激下,计算业正q接影响p的第三次发展潮?/font>

Globus Toolkit

Globus Tookit工具包来源于Globus目QGlobus目是国际上最有媄(jing)响力的与|格计算相关的项目之一Q是由来自世界各地关注网格技术的研究人员和开发h员共同努力的成果。Globus Tookit是一个开放源码的|格的基q_Q基于开攄构、开放服务资源和软g库,q支持网格和|格应用Q目的是为构建网格应用提供中间g服务和程序库?/font>

Globus Tookith较ؓ(f)l一的国际标准,有利于整合现有资源,也易于维护和升换代。现在,一些重要的公司Q包括IBM和微软等都公开宣布支持Globus Toolkit。目前大多数|格目都是采用ZGlobus Tookit所提供的协议及(qing)服务的?/font>

 

Globus现在的发展势头正可谓与Linux有异曲同工之处。作为免费的操作pȝQLinux正以势如破竹之势发展着。从世界范围来看Q开放源代码软gQOSSQ是软g业发展的大趋势,Linux更是OSS的重头戏Q不仅深得IBM、惠普和Sun{国际IT巨头的厚爱,同时也博得了(jin)各国政府的支持?/font>

 

Globus与Linux 最大的怼之处在于Q它们都是开放源代码软gQ推qѝ用开源Y件已成ؓ(f)众多政府官员、专家、企业与用户的共识。目前,Globus和Linux的都非常注重标准的制定,通过采用l一的标准,使各个公怼业同一个方向上发展Q加快他们的普及(qing)。所以我们可以Ş象地GlobusUC|格世界的Linux?/font>

 

随着时代的发展和q步QGlobus随着体系l构的变化也l历?jin)几ơ飞跃,它现在变得越来越完善?/font>

 

Globus Toolkit 2

 

自从1997qvQGlobus Toolkit工具包的W二版(GT2Q成Z(jin)|格计算的事实标准。它着重于可用性和互操作性能力,定义和实C(jin)一些协议、API和服务?/font>

 

当时在世界上有上千个|格应用ZGT2Q通过提供授权认证、资源发现和资源讉K{共同问题的解决Ҏ(gu)QGT2加快?jin)网格应用的构徏。GT2通过定义和实现的“标准”协议和服务,真正地实C(jin)可互操作的网格系l?/font>

 

但是QGT2毕竟目的是针对网格的具体实现Q所以它q没有一个正式的标准Q也没有接受公开的审阅,所以在某种E度上限制了(jin)它的发展。随着|格技术的快速发展和全球|格论坛q个标准性的机构出现Q修订Globus Tookit的协议的标准提到?jin)日E上?/font>

 

ZOGSI的Globus

 

2002q? 月,在加拿大多u多市(jng)召开的全球网D坛GGF?x)议上,Globus目l和IBM共同倡议?jin)一个全新的|格标准OGSA。OGSA叫做开攄格服务体p,它把Globus标准与以商用Z的Web Services的标准结合v来,|格服务l一以Services的方式对外界提供?003q符合OGSA规范的Globus Toolkit 3.0QGT3Q发布,q标志着OGSA已经从一U理c(din)一U体pȝ构,走到付诸实践的阶D了(jin)?/font>

 

GT3提供?jin)一个完整的开攄格服务基设施QOGSIQ实玎ͼ它的许多功能重构成与OGSI兼容的服务。GT3服务发现、程序执行作业的提交、监控和可靠的文件传输,定义成了(jin)与OGSI兼容的服务。其它如数据传递、副本定位和授权{服务也量构徏成与OGSI相兼宏Vƈ且GT3定义?jin)一l关于用Web服务描述语言QWSDLQ和扩展标识语言QXMLQ模式的U定与扩展,以便启用有状态服务?/font>

 

虽然OGSI的概念很重要Q但是也存在一些自w的~陷Q需要一些新的结构来解决q些问题。所以采用新的结构代替OGSI是有必要的,通过转变可以获得|络服务强有力的支持?/font>

 

ZWSRF的Globus

 

2004q? 月,国Akamai Technologies、美国The Globus Alliance、惠普、IBM、美国Sonic Software和美国TIBCO Software六公司公布了(jin)l一|格计算和W(xu)eb服务的新标准“WS-Notification”?#8220;WS-Resource Framework”。Web服务资源框架QWSRFQ是OGSI的重构和发展Q利用新的Web服务标准?/font>

 

WSRF基本保留?jin)OGSI中的所有功能,同时更改?jin)一些语法,q且q在其表CZ采用?jin)不同的技术。Web服务通知QWSNQؓ(f)Web服务提供Z消息发布和预定能力。WSRF和W(xu)SN都是建立在已存在的Web服务定义和技术基上的Q帮助实C(jin)|格计算、系l管理和W(xu)eb服务的统一?/font>

 

2005q??1日发布的Globus Toolkit 4QGT4Q,实现?jin)WSRF和W(xu)SN标准。GT4提供API来构建有状态的Web服务Q其目标是徏立分布式异构计算环境。所有知名的GT3协议都被重新设计为可以用WSRF。ƈ且GT4也在其中增添?jin)一些新的Web服务的组件?nbsp;   



y 2007-11-03 11:56 发表评论
]]>
VC++动态链接库~程之MFC规则DLLhttp://www.aygfsteel.com/yeagls/articles/137307.htmlyyThu, 16 Aug 2007 08:15:00 GMThttp://www.aygfsteel.com/yeagls/articles/137307.htmlhttp://www.aygfsteel.com/yeagls/comments/137307.htmlhttp://www.aygfsteel.com/yeagls/articles/137307.html#Feedback0http://www.aygfsteel.com/yeagls/comments/commentRss/137307.htmlhttp://www.aygfsteel.com/yeagls/services/trackbacks/137307.html讲述MFC规则DLL的创Z使用技巧?
5. MFC规则DLL

  5.1 概述

  MFC规则DLL的概念体现在两方面:(x)

  Q?Q?它是MFC?br>  
  “是MFC?#8221;意味着可以在这UDLL的内部用MFCQ?br>
  Q?Q?它是规则?br>“是规则的”意味着它不同于MFC扩展DLLQ在MFC规则DLL的内部虽然可以用MFCQ但是其与应用程序的接口不能是MFC。而MFC扩展DLL与应用程序的接口可以是MFCQ可以从MFC扩展DLL中导Z个MFCcȝzcR?br>
  Regular DLL能够被所有支持DLL技术的语言所~写的应用程序调用,当然也包括用MFC的应用程序。在q种动态连接库中,包含一个从CWinAppl承下来的类QDllMain函数则由MFC自动提供?br>
  Regular DLL分ؓ(f)两类Q?br>
  Q?Q静(rn)态链接到MFC 的规则DLL

  ?rn)态链接到MFC的规则DLL与MFC库(包括MFC扩展 DLLQ静(rn)态链接,MFC库的代码直接生成?dll文g中。在调用q种DLL的接口时QMFC使用DLL的资源。因此,在静(rn)态链接到MFC 的规则DLL中不需要进行模块状态的切换?br>
  使用q种Ҏ(gu)生成的规则DLL其程序较大,也可能包含重复的代码?br>
  Q?Q动态链接到MFC 的规则DLL

  动态链接到MFC 的规则DLL 可以和用它的可执行文g同时动态链接到 MFC DLL 和Q何MFC扩展 DLL。在使用?jin)MFC׃n库的时候,默认情况下,MFC使用d用程序的资源句柄来加载资源模ѝ这P当DLL和应用程序中存在相同ID的资源时Q即所谓的资源重复问题Q,pȝ可能不能获得正确的资源。因此,对于׃nMFC DLL的规则DLLQ我们必进行模块切换以使得MFC能够扑ֈ正确的资源模ѝ?br>
  我们可以在Visual C++中设|MFC规则DLL是静(rn)态链接到MFC DLLq是动态链接到MFC DLL。如?Q依ơ选择Visual C++的project -> Settings -> General菜单或选项Q在Microsoft Foundation Classes中进行设|?br>

? 讄动??rn)态链接MFC DLL



    5.2 MFC规则DLL的创?br>
  我们来一步步讲述使用MFC向导创徏MFC规则DLL的过E,首先新徏一个projectQ如?Q选择project的类型ؓ(f)MFC AppWizard(dll)。点击OKq入如图10所C的对话框?br>

? MFC DLL工程的创?/div>


?0所C对话框中的1区选择MFC DLL的类别?/div>

  2区选择是否支持automationQ自动化Q技术, automation 允许用户在一个应用程序中操纵另外一个应用程序或lg。例如,我们可以在应用程序中利用 Microsoft Word 或Microsoft Excel的工P而这U用对用户而言是透明的。自动化技术可以大大简化和加快应用E序的开发?br>
  3区选择是否支持Windows SocketsQ当选择此项目时Q应用程序能?TCP/IP |络上进行通信?CWinAppzcȝInitInstance成员函数?x)初始化通讯端的支持Q同时工E中的StdAfx.h文g?x)自动include <AfxSock.h>头文件?br>
  dsocket通讯支持后的InitInstance成员函数如下Q?

BOOL CRegularDllSocketApp::InitInstance()
{
 if (!AfxSocketInit())
 {
  AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
  return FALSE;
 }
 return TRUE;
}

  4区选择是否由MFC向导自动在源代码中添加注释,一般我们选择“Yes,please”?br>

?0 MFC DLL的创建选项



y 2007-08-16 16:15 发表评论
]]>
Rewrite SQL subqueries as outer joinshttp://www.aygfsteel.com/yeagls/articles/136684.htmlyyTue, 14 Aug 2007 07:06:00 GMThttp://www.aygfsteel.com/yeagls/articles/136684.htmlhttp://www.aygfsteel.com/yeagls/comments/136684.htmlhttp://www.aygfsteel.com/yeagls/articles/136684.html#Feedback0http://www.aygfsteel.com/yeagls/comments/commentRss/136684.htmlhttp://www.aygfsteel.com/yeagls/services/trackbacks/136684.htmlBecause SQL is a declarative language, you can write the same query in many forms, each getting the same result but with vastly different execution plans and performance.

In this example, we select all books that do not have any sales.  Note that this is a non-correlated sub-query, but it could be re-written in several ways.

select
   book_key
from
   book
where
   book_key NOT IN (select book_key from sales);
 

There are serious problems with subqueries that may return NULL values. It is a good idea to discourage the use of the NOT IN clause (which invokes a sub-query) and to prefer NOT EXISTS (which invokes a correlated sub-query), since the query returns no rows if any rows returned by the sub-query contain null values.

select
   book_key
from
   book
where
   NOT EXISTS (select book_key from sales);

Subqueries can often be re-written to use a standard outer join, resulting in faster performance.  As we may know, an outer join uses the plus sign (+) operator to tell the database to return all non-matching rows with NULL values.  Hence we combine the outer join with a NULL test in the WHERE clause to reproduce the result set without using a sub-query.

select
   b.book_key
from
   book  b,
   sales s
where
   b.book_key = s.book_key(+)
and
   s.book_key IS NULL;

This execution plan will also be faster by eliminating the sub-query.



y 2007-08-14 15:06 发表评论
]]>
Oracle/PLSQL: Subquerieshttp://www.aygfsteel.com/yeagls/articles/136635.htmlyyTue, 14 Aug 2007 04:19:00 GMThttp://www.aygfsteel.com/yeagls/articles/136635.htmlhttp://www.aygfsteel.com/yeagls/comments/136635.htmlhttp://www.aygfsteel.com/yeagls/articles/136635.html#Feedback0http://www.aygfsteel.com/yeagls/comments/commentRss/136635.htmlhttp://www.aygfsteel.com/yeagls/services/trackbacks/136635.htmlWhat is a subquery?

A subquery is a query within a query. In Oracle, you can create subqueries within your SQL statements. These subqueries can reside in the WHERE clause, the FROM clause, or the SELECT clause.


WHERE clause

Most often, the subquery will be found in the WHERE clause. These subqueries are also called nested subqueries.

For example:

select * from all_tables tabs
where tabs.table_name in (select cols.table_name
 from all_tab_columns cols
 where cols.column_name = 'SUPPLIER_ID');

Limitations: Oracle allows up to 255 levels of subqueries in the WHERE clause.


FROM clause

A subquery can also be found in the FROM clause. These are called inline views.

For example:

select suppliers.name, subquery1.total_amt
from suppliers,
   (select supplier_id, Sum(orders.amount) as total_amt
   from orders
   group by supplier_id) subquery1,
where subquery1.supplier_id = suppliers.supplier_id;

In this example, we've created a subquery in the FROM clause as follows:

(select supplier_id, Sum(orders.amount) as total_amt
 from orders
 group by supplier_id) subquery1

This subquery has been aliased with the name subquery1. This will be the name used to reference this subquery or any of its fields.

Limitations: Oracle allows an unlimited number of subqueries in the FROM clause.


SELECT clause

A subquery can also be found in the SELECT clause.

For example:

select tbls.owner, tbls.table_name,
  (select count(column_name) as total_columns
   from all_tab_columns cols
   where cols.owner = tbls.owner
   and cols.table_name = tbls.table_name) subquery2
from all_tables tbls;

In this example, we've created a subquery in the SELECT clause as follows:

(select count(column_name) as total_columns
 from all_tab_columns cols
 where cols.owner = tbls.owner
 and cols.table_name = tbls.table_name) subquery2

The subquery has been aliased with the name subquery2. This will be the name used to reference this subquery or any of its fields.

The trick to placing a subquery in the select clause is that the subquery must return a single value. This is why an aggregate function such as SUM, COUNT, MIN, or MAX is commonly used in the subquery



y 2007-08-14 12:19 发表评论
]]>
Oracle ROLLUP和CUBE 用法 http://www.aygfsteel.com/yeagls/articles/136459.htmlyyMon, 13 Aug 2007 10:06:00 GMThttp://www.aygfsteel.com/yeagls/articles/136459.htmlhttp://www.aygfsteel.com/yeagls/comments/136459.htmlhttp://www.aygfsteel.com/yeagls/articles/136459.html#Feedback0http://www.aygfsteel.com/yeagls/comments/commentRss/136459.htmlhttp://www.aygfsteel.com/yeagls/services/trackbacks/136459.html阅读全文

y 2007-08-13 18:06 发表评论
]]>
Sql Server中的CUBE与ROLLUP http://www.aygfsteel.com/yeagls/articles/136449.htmlyyMon, 13 Aug 2007 09:32:00 GMThttp://www.aygfsteel.com/yeagls/articles/136449.htmlhttp://www.aygfsteel.com/yeagls/comments/136449.htmlhttp://www.aygfsteel.com/yeagls/articles/136449.html#Feedback0http://www.aygfsteel.com/yeagls/comments/commentRss/136449.htmlhttp://www.aygfsteel.com/yeagls/services/trackbacks/136449.html阅读全文

y 2007-08-13 17:32 发表评论
]]>
Linux和windows动态库http://www.aygfsteel.com/yeagls/articles/135974.htmlyySat, 11 Aug 2007 00:56:00 GMThttp://www.aygfsteel.com/yeagls/articles/135974.htmlhttp://www.aygfsteel.com/yeagls/comments/135974.htmlhttp://www.aygfsteel.com/yeagls/articles/135974.html#Feedback0http://www.aygfsteel.com/yeagls/comments/commentRss/135974.htmlhttp://www.aygfsteel.com/yeagls/services/trackbacks/135974.html阅读全文

y 2007-08-11 08:56 发表评论
]]>
inner join, left join,right joinhttp://www.aygfsteel.com/yeagls/archive/2007/07/10/129305.htmlyyTue, 10 Jul 2007 04:01:00 GMThttp://www.aygfsteel.com/yeagls/archive/2007/07/10/129305.htmlhttp://www.aygfsteel.com/yeagls/comments/129305.htmlhttp://www.aygfsteel.com/yeagls/archive/2007/07/10/129305.html#Feedback0http://www.aygfsteel.com/yeagls/comments/commentRss/129305.htmlhttp://www.aygfsteel.com/yeagls/services/trackbacks/129305.html例表a
aid adate
1 a1
2 a2
3 a3
表b
bid bdate
1 b1
2 b2
4 b4
两个表a,b相连?要取出id相同的字D?
select * from a inner join b on a.aid = b.bidq是仅取出匹配的数据.
此时的取出的?
1 a1 b1
2 a2 b2
那么left join ?
select * from a left join b on a.aid = b.bid
首先取出a表中所有数?然后再加上与a,b匚w的的数据
此时的取出的?
1 a1 b1
2 a2 b2
3 a3 I字W?
同样的也有right join
指的是首先取出b表中所有数?然后再加上与a,b匚w的的数据
此时的取出的?
1 a1 b1
2 a2 b2
4 I字W?b4

y 2007-07-10 12:01 发表评论
]]>
abstract classhttp://www.aygfsteel.com/yeagls/articles/128597.htmlyyFri, 06 Jul 2007 07:58:00 GMThttp://www.aygfsteel.com/yeagls/articles/128597.htmlhttp://www.aygfsteel.com/yeagls/comments/128597.htmlhttp://www.aygfsteel.com/yeagls/articles/128597.html#Feedback0http://www.aygfsteel.com/yeagls/comments/commentRss/128597.htmlhttp://www.aygfsteel.com/yeagls/services/trackbacks/128597.html        接口QinterfaceQ是抽象cȝ变体。在接口中,所有方法都是抽象的。多l承性可通过实现q样的接口而获得。接口中的所有方法都是抽象的Q没有一个有E序体。接口只可以定义static final成员变量。接口的实现与子cȝ|除了(jin)该实现类不能从接口定义中l承行ؓ(f)。当cd现特D接口时Q它定义Q即程序体l予Q所有这U接口的Ҏ(gu)。然后,它可以在实现?jin)该接口的类的Q何对象上调用接口的方法。由于有抽象c,它允怋用接口名作ؓ(f)引用变量的类型。通常的动态联~将生效。引用可以{换到接口cd或从接口cd转换Qinstanceof q算W可以用来决定某对象的类是否实现?jin)接口?/p>

       接口可以l承接口。抽象类可以实现(implements)接口Q抽象类是可以承实体类Q但前提是实体类必须有明的构造函数?

      接口更关?#8220;能实C么功?#8221;Q而不?#8220;怎么实现?#8221;?/p>

y 2007-07-06 15:58 发表评论
]]>
abstract class and interfacehttp://www.aygfsteel.com/yeagls/archive/2007/07/06/128596.htmlyyFri, 06 Jul 2007 07:53:00 GMThttp://www.aygfsteel.com/yeagls/archive/2007/07/06/128596.htmlhttp://www.aygfsteel.com/yeagls/comments/128596.htmlhttp://www.aygfsteel.com/yeagls/archive/2007/07/06/128596.html#Feedback0http://www.aygfsteel.com/yeagls/comments/commentRss/128596.htmlhttp://www.aygfsteel.com/yeagls/services/trackbacks/128596.html        接口QinterfaceQ是抽象cȝ变体。在接口中,所有方法都是抽象的。多l承性可通过实现q样的接口而获得。接口中的所有方法都是抽象的Q没有一个有E序体。接口只可以定义static final成员变量。接口的实现与子cȝ|除了(jin)该实现类不能从接口定义中l承行ؓ(f)。当cd现特D接口时Q它定义Q即程序体l予Q所有这U接口的Ҏ(gu)。然后,它可以在实现?jin)该接口的类的Q何对象上调用接口的方法。由于有抽象c,它允怋用接口名作ؓ(f)引用变量的类型。通常的动态联~将生效。引用可以{换到接口cd或从接口cd转换Qinstanceof q算W可以用来决定某对象的类是否实现?jin)接口?/p>

       接口可以l承接口。抽象类可以实现(implements)接口Q抽象类是可以承实体类Q但前提是实体类必须有明的构造函数?

      接口更关?#8220;能实C么功?#8221;Q而不?#8220;怎么实现?#8221;?br>

相同?qing)联p?br>  A. 两者都是抽象类Q都不能实例化?br>  B. interface实现cd(qing)abstrct class的子c都必须要实现已l声明的抽象Ҏ(gu)?br>
2. 不同
  A. interface需要实玎ͼ要用implementsQ而abstract class需要承,要用extends?br>  B. 一个类可以实现多个interfaceQ但一个类只能l承一个abstract class?br>  C. interface特定功能的实玎ͼ而abstract class所属关pR?nbsp;
  D. 管interface实现cd(qing)abstrct class的子c都必须要实现相应的抽象Ҏ(gu)Q但实现的Ş式不同。interface中的每一个方法都是抽象方法,都只是声明的(declaration, 没有Ҏ(gu)?Q实现类必须要实现。而abstract class的子cd以有选择地实现。这个选择有两点含义:(x)
    一是Abastract class中ƈ非所有的Ҏ(gu)都是抽象的,只有那些冠有abstract的方法才是抽象的Q子cdd现。那些没有abstract的方法,在Abstrct class中必d义方法体?br>    二是abstract class的子cdl承它时Q对非抽象方法既可以直接l承Q也可以覆盖Q而对抽象Ҏ(gu)Q可以选择实现Q也可以通过再次声明其方法ؓ(f)抽象的方式,无需实现Q留l其子类来实玎ͼ但此cdM声明为抽象类。既是抽象类Q当然也不能实例化?br>  E. abstract class是interface与Class的中介?br>  interface是完全抽象的Q只能声明方法,而且只能声明pulic的方法,不能声明private?qing)protected的方法,不能定义Ҏ(gu)体,也不能声明实例变量。然而,interface却可以声明常量变量,q且在JDK中不难找U例子。但常量变量放在interface中违背了(jin)其作为接口的作用而存在的宗旨Q也h?jin)interface与类的不同h(hun)倹{如果的需要,可以其攑֜相应的abstract class或Class中?br>  abstract class在interface?qing)Class中vC(jin)承上启下的作用。一斚wQabstract class是抽象的Q可以声明抽象方法,以规范子cdd现的功能Q另一斚wQ它又可以定义缺省的Ҏ(gu)体,供子cȝ接用或覆盖。另外,它还可以定义自己的实例变量,以供子类通过l承来用?br>
3. interface的应用场?br>  A. cMcM前需要特定的接口q行协调Q而不在乎其如何实现?br>  B. 作ؓ(f)能够实现特定功能的标识存在,也可以是什么接口方法都没有的纯_Ҏ(gu)识?br>  C. 需要将一l类视ؓ(f)单一的类Q而调用者只通过接口来与q组cd生联pR?br>  D. 需要实现特定的多项功能Q而这些功能之间可能完全没有Q何联pR?br>
4. abstract class的应用场?br>  一句话Q在既需要统一的接口,又需要实例变量或~省的方法的情况下,可以用它。最常见的有Q?br>  A. 定义?jin)一l接口,但又不想每个实现c都必须实现所有的接口。可以用abstract class定义一l方法体Q甚臛_以是I方法体Q然后由子类选择自己所感兴的Ҏ(gu)来覆盖?br>  B. 某些场合下,只靠Ua(b)的接口不能满类与类之间的协调,q必需cM表示状态的变量来区别不同的关系。abstract的中介作用可以很好地满q一炏V?br>  C. 规范?jin)一l相互协调的Ҏ(gu)Q其中一些方法是共同的,与状态无关的Q可以共享的Q无需子类分别实现Q而另一些方法却需要各个子cL据自q定的状态来实现特定的功能?/p>

y 2007-07-06 15:53 发表评论
]]>
վ֩ģ壺 | ʡ| | ƽ| Է| ²| | ƽ| | | ɽ| | | | ɳƺ| | | ɽ| | ɽ| | ɽ| Ϫ| Դ| ƶ| | ɽ| | ̰| Ž| ʦ| | | ϵ| | Զ| | | Ǹ| | |