Chinaunix首页 | 论坛 | 博客
  • 博客访问: 12656
  • 博文数量: 21
  • 博客积分: 466
  • 博客等级: 下士
  • 技术积分: 230
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-16 16:35
文章分类

全部博文(21)

文章存档

2011年(21)

我的朋友

分类: Java

2011-04-01 09:58:25

第6章 框架和重用:利用接口和抽象类进行设计

代码的重用

编写一次,然后随心所欲的重用。

创建可重用代码的一种方法是创建框架。

什么是框架

框架的思想涉及两方面:标准化(即插即用)和重用。

典型例子:office系列办公软件。

什么是契约

契约是任何需要开发者遵守的应用程序编程接口规范的机制。

API通常被称为框架。

抽象类是指包括一个或多个没有提供任何实现的方法的类。它不能被实例化,但可以定义一个引用。例:Animal an;

接口的概念

可以把接口看作一种特殊的抽象类,接口中的所有方法都是抽象方法,不提供任何实现。

在C++中,没有接口这一结构,其抽象类提供了接口的功能。

问题是:既然抽象类可以提供与接口相同的功能,为什么Java和C#还要特意提供接口呢?

C++中可以实现多重继承,但Java和C#均不支持,那么一般人们会认为接口是对Java和C#不能实现多重继承的一种弥补。而事实上,接口是单独的设计技术,虽然它可以用来设计那些可以由多重继承完成的应用程序。但它并没有代替多重继承的概念。

抽象类和接口的真正区别是什么?

组合怎样来关联抽象类和接口?

继承:is-a关系;组合:has-a关系;那么接口呢?

什么时候选择抽象类,什么时候选择接口,什么时候选择组合呢?

接口可以看作是一种特殊类型的继承,那么它特殊在哪?

严格继承关系中的类必须是有关系的。例:狗是哺乳动物,所以狗类可以继承哺乳动物类。但接口可以用于没有关系的类。例:虽然蜥蜴不是哺乳动物,但它和狗都是可命名的。都可以实现Nameable接口。换句话说:接口指定很类都包含的行为,而这些类可能没有关系。

一个电子商务的例子

如何使用继承、抽象类、接口和组合来创建可用的框架。

应用程序和任何专用类之间没有耦合,只和契约(抽象类或接口)耦合。

阅读(281) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~