深入理解Apache Mina (1)---- Mina的几个类
2009-09-16 00:00:00 来源:WEB开发网可以先将这两个方法的功能理解为是一回事,具体的区别会在后面给出。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)中的方法)。以上就是第三个问题的答案。
- ››apache设置域名绑定 以及绑定不起作用的排查
- ››apache rewrite将指定URL转向指定的几个服务器
- ››apache配置文件httpd.comf部分参数说明
- ››Apache+Mysql+PHP+phpMyAdmin+Mac OS X 10.7 Lion...
- ››深入理解JAR包
- ››apache+tomcat负载均衡_项目实例
- ››apache mysql php 源码编译使用
- ››深入分析Volatile的实现原理
- ››深入理解Flash Player的应用程序域(Application ...
- ››深入理解flash函数(AS2)
- ››Apache添加mod_aspdotnet.so支持ASP.NET配置指南
- ››Apache中改变php.ini的路径
更多精彩
赞助商链接