WEB开发网
开发学院软件开发Java 深入理解Apache Mina (1)---- Mina的几个类... 阅读

深入理解Apache Mina (1)---- Mina的几个类

 2009-09-16 00:00:00 来源:WEB开发网   
核心提示: 可以先将这两个方法的功能理解为是一回事,具体的区别会在后面给出,深入理解Apache Mina (1)---- Mina的几个类(6),isManaged():检测某个SocketAddress是否处于被管理的状态,getListeners():获取当前服务的监听器,这样就实现了IoServic

可以先将这两个方法的功能理解为是一回事,具体的区别会在后面给出。isManaged():检测某个SocketAddress是否处于被管理的状态。

getListeners():获取当前服务的监听器。

看了上面对BaseIoService功能的介绍,现在我们可以理解 BaseIoService提供的方法主要是用于对当前服务的管理。那么要管理一个服务,前提条件是这个服务必须存在,存在的前提是什么,就是要启动一个服务,或者是连接到一个远程主机上,这两个任务分别是IoAcceptor和IoConnector来完成的,此处要注意的是这两个对象都是接口,没有具体的实现,具体的实现会由下面介绍的它们相关的子类(SocketAcceptor等)来实现。这样IoAcceptor/IoConnector的功能我们就可以总结出来了,就是启动和停止一个服务。

对于一个完整的服务来说,既要有启动这样的前提条件,还要有对服务的管理和对服务响应的逻辑处理,这两个缺一不可,回到第二个问题,BaseIoService和IoAcceptor(IoConnector)有什么区别?区别就在于它们实现的功能不一样,但都是为了一个完整的服务来打基础的,两者缺一都不能称为一个完整的服务。这三个都是IoService子类(子接口),oService只是提供了一些服务应该具有多基本的方法,BaseIoService提供了IoService部分方法的具体实现,而 IoAcceptor(IoConnector)是对特定服务要具备的操作的做了一些扩展,这样一个服务完整的模型正在逐渐向我们清晰的展现出来。

再次,讨论一下第三个问题。 BaseIoAcceptor(BaseIoConnector)为什么不去直接实现IoService,而是又添加了 IoAcceptor(IoConnector)?这个问题其实在上面已经有所涉及,为了达到对象复用的目的,所以Mina的设计者给出了一个 BaseIoService,IoAcceptor(IoConnector)是实现一个特定服务必须要提供的一些方法。更具体一点,IoAcceptor(IoConnector)是为了一个特定的服务(服务器/客户端)而设计的,而IoService只是提供了一个服务应该具备的一些基本的方法。所以在Mina中给出了一个针对具体服务的一个接口IoAcceptor(IoConnector),这样 BaseIoAcceptor(BaseIoConnector)就提供了一个服务所必备的一些条件。因为它即实现了 IoAcceptor(IoConnector)接口又继承了抽象类BaseIoService,这样就实现了IoService中的所有方法,并且也添加了特定服务应该具有的方法(即IoAcceptor(IoConnector)中的方法)。以上就是第三个问题的答案。

上一页  1 2 3 4 5 6 7  下一页

Tags:深入 理解 Apache

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接