- 栏目导航
eclipse安装svn客户端插件日志
网上讲安装eclipse插件安装的教程一大堆,本人感觉他们把问题复杂话了,文件归咎下来无疑就是查找插件URL地址的问题,URL地址请到这个页面查找合适的插件地址: http://subclipse.tigris.org/servlets/ProjectProcess?pageID=p4wYuA
eclipse安装插件相对也简单操作:
help>>install/update software....
一路操作下来就好了....
vc++ get请求下载网页代码
fang_using <System.dll> using namespace System; using namespace System::IO; using namespace System::Net; using namespace System::Text; int main() { // Create a request for the URL. WebRequest^ request = WebRequest::Create( "http://www.contoso.com/default.html" ); // If required by the server, set the credentials. request->Credentials = CredentialCache::DefaultCredentials; // Get the response. HttpWebResponse^ response = dynamic_cast<HttpWebResponse^>(request->GetResponse()); // Display the status. Console::WriteLine( response->StatusDescription ); // Get the stream containing content returned by the server. Stream^ dataStream = response->GetResponseStream(); // Open the stream using a StreamReader for easy access. StreamReader^ reader = gcnew StreamReader( dataStream ); // Read the content. String^ responseFromServer = reader->ReadToEnd(); // Display the content. Console::WriteLine( responseFromServer ); // Cleanup the streams and the response. reader->Close(); dataStream->Close(); response->Close(); }
UML中几种类间关系:继承、实现、依赖、关联、聚合、组合的联系与区别
继承
指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间 最常见的关系;在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性;

实现
指的是一个class类实现interface接口(可以是多个)的功能;实现是类与接口之间最常见的关系;在Java中此类关系通过关键字 implements明确标识,在设计时一般没有争议性;

依赖
可以简单的理解,就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、、临时性的、非常弱的,但是B类的变化会影响到A;比如某人要过 河,需要借用一条船,此时人与船之间的关系就是依赖;表现在代码层面,为类B作为参数被类A在某个method方法中使用;

关联
他体现的是两个类、或者类与接口之间语义级别的一种强依赖关系,比如我和我的朋友;这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性 的,一般是长期性的,而且双方的关系一般是平等的、关联可以是单向、双向的;表现在代码层面,为被关联类B以类属性的形式出现在关联类A中,也可能是关联 类A引用了一个类型为被关联类B的全局变量;

聚合
聚合是关联关系的一种特例,他体现的是整体与部分、拥有的关系,即has-a的关系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期, 部分可以属于多个整体对象,也可以为多个整体对象共享;比如计算机与CPU、公司与员工的关系等;表现在代码层面,和关联关系是一致的,只能从语义级别来 区分;

组合
组合也是关联关系的一种特例,他体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此 时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束;比如你和你的大脑;表现在代码层面,和关联关系是一致的,只能从语义级别来区 分;

对于继承、实现这两种关系没多少疑问,他们体现的是一种类与类、或者类与接口间的纵向关系;其他的四者关系则体现的是类与类、或者类与接口间的引 用、横向关系,是比较难区分的,有很多事物间的关系要想准备定位是很难的,前面也提到,这几种关系都是语义级别的,所以从代码层面并不能完全区分各种关 系;但总的来说,后几种关系所表现的强弱程度依次为:组合>聚合>关联>依赖 ;
聚合
要公开一个 COM 类的接口,并将这些接口当作是在第二个 COM 类上实现的,第二个类就将聚合第一个类。COM 对象可以聚合 .NET 对象,在这种情况下,该对象的所有接口(包括其类接口)都可以通过外部对象来使用。内部 .NET 对象将对其 IUnknown 方法的调用委托给控制 IUnknown。
聚合比包容(在下一节说明)略为复杂。它通常用于使外部对象能够在不进行修改的情况下公开另一个对象的接口实现。所有托管对象自动支持将托管对象用作内部对象来进行 COM 样式的聚合。要聚合托管对象,非托管的外部对象将创建托管的内部对象,方法是调用 CoCreateInstance,然后将外部对象的 IUnknown 作为 OuterUnknown 参数传递。当外部 IUnknown 在构造过程中传递给托管对象时,托管对象将缓存接口并以如下方式使用该接口:
外部对象挂接到内部 IUnknown 的非委托 IUnknown。非委托 IUnknown 的运行方式与常规 IUnknown 相同;也就是说,如果对象实现了接口,非委托 IUnknown 就会成功,否则就会失败。非委托 IUnknown 不会将调用转发到外部对象。
如果对内部对象查询它不支持的接口,内部对象就会将调用委托给外部对象的 IUnknown 接口。
对内部对象的 QueryInterface、AddRef 和 Release 方法的所有调用都将委托给外部对象的 IUnknown。
通过这三种行为,可以聚合任何托管对象。利用这种聚合关系,可以使单个 COM 对象部分在托管代码(内部部分)中实现,部分在非托管代码(外部部分)中实现。
聚合有个特性就是定制,因为可定制聚合才有意思,如互联网的RSS订阅,如Google Reader,雅蛙网。
- 共 1 页
- 1
- 没有了

