编程概念

发表于2008年08月02日 12:45 阅读(6) 评论(0)

 

1.       封装
封装是面向对象的一个重要特点。它防止外界未被授权地访问一些信息和功能。从而使对象成为一个黑盒子,让使用对象的人不用(也没有办法)了解对象内部的工作情况。于是,类的设计者可以设计一个清晰的接口并且将实现和接口分离,也由于有了封装,用户就只能使用接口而不能接触到具体的实现。
2.多态
多态是面向对象有力的武器之一,它允许客户对一个对象进行一个操作,但是具体的动作却取决于对象的类型。
3.接口
多态可以是基于继承的,还有另一种机制实现多态,就是接口。接口让程序员能够对对象的定义与实现分离,从而可以在不破坏现有应用程序的情况下使对象得以发展完善。
接口描述属性和方法的方式与类相似,但与类不同,接口不能提供任何实现。多个接口具有允许软件组件的系统不断发展而不破坏现有代码的优点。
  Java一个类只可以从一个类派生,但是却可以实现多个接口。

定义了
Abstract class Cshape
之后有有一些类继承自它 Circle,Trangle,

现在希望知道一个形状的周长时,需要添加 Perimeter(周长)属性和 PrintPerimeter()方法。

如果整个代码都在自己的控制中,当然可以直接对cshape类作出修改,并且也可以修改
其余的派生类。但是一个类库往往是由别人编译发行的,客户根本无法见到代码,即使有代码,也可能不希望直接修改它,以免造成一些意外的问题。这个时候,比较好的做法就是增加一个接口,然后从原有的类派生一些类来实现这个接口。

//?如何知道D类的名字?像down下的jdbc实现jar包可以看到全部代码,又怎样?

//////////////////////////////////////////////////////////////////////////////
1.委托
委托模式是软件设计模式中的一项基本技巧。在委托模式中,有两个对象参与处理同一个请求,接受请求的对象将请求委托给另一个对象来处理。委托模式是一项基本技巧,许多其他的模式,如状态模式、策略模式、访问者模式本质上是在更特殊的场合采用了委托模式。委托模式使得我们可以用聚合来替代继承,它还使我们可以模拟mixin。
“委托”在C#中是一个语言级特性,而在Java语言中没有直接的对应,但是我们可以通过动态代理来实现委托!代码如下:
//     http://www.javaeye.com/topic/29541

2.事件
//    http://hbohuan.blog.163.com/blog/static/208489820077132225530/

3.回调

回调概念:
软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。同步调用是一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用;回调是一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口;异步调用是一种类似消息或事件的机制,不过它的调用方向刚好相反,接口的服务在收到某种讯息或发生某种事件时,会主动通知客户方(即调用客户方的接口)。回调和异步调用的关系非常紧密,通常我们使用回调来实现异步消息的注册,通过异步调用来实现消息的通知。同步调用是三者当中最简单的,而回调又常常是异步调用的基础。
java实现回调:
在 Java 支持方法指针之前,Java 接口不能提供一种实现回调的好方法。如果您习惯于传递在事件驱动编程模型中调用的函数指针,则您会喜欢本技巧。 熟悉 MS-Windows 和 X Window System 事件驱动编程模型的开发人员,习惯于传递在某种事件发生时调用(即“回调”)的函数指针。Java 的面向对象模型目前并不支持方法指针,这样似乎就不可能使用这种很好的机制。但我们并不是一点办法都没有!
Java 的接口支持提供了一种获得回调的等价功能的机制。其技巧就是:定义一个简单接口,并在该接口中声明我们要调用的方法。
//    http://www.cublog.cn/u/25102/showart_327024.html
//    http://kidult.javaeye.com/blog/148982
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章