A pluggable adapter is an adapter that adapts dynamically to one of several classes. Of course, the adapter can adapt only to classes that it can recognize, and usually the adapter decides which class it is adapting to based on differing constructors or setParameter methods.
Java has yet another way for adapters to recognize which of several classes it must adapt to: reflection. You can use reflection to discover the names of public methods and their parameters for any class. For example, for any arbitrary object you can use the getClass method to obtain its class and the getMethods method to obtain an array of the method names.
java 代码
-
-
-
- class Pathfinder
- {
- public void explore()
- {
- System.out.println("explore");
- }
- }
-
-
-
-
- class Digger
- {
- public void dig()
- {
- System.out.println("Dig");
- }
- }
-
-
-
-
- class Collector
- {
- public void collect()
- {
- System.out.println("collect");
- }
- }
-
-
-
-
- class PluggablePathfinderAdapter
- {
- private Pathfinder pathfinder;
- private HashMap map=new HashMap();
-
- PluggablePathfinderAdapter(Pathfinder pathfinder)
- {
- this.pathfinder=pathfinder;
- }
-
- public void adapt(String classname,String methodname)
- {
- try
- {
-
- Class _class=Class.forName(classname);
- Method method=_class.getMethod(methodname,null);
- map.put(classname,method);
- }catch(ClassNotFoundException cnfe)
- {
- cnfe.printStackTrace();
- }catch(NoSuchMethodException nsme)
- {
- nsme.printStackTrace();
- }
- }
-
- public void explore(String classname)
- {
- try
- {
- pathfinder.explore();
- map.get(classname).invoke(Class.forName(classname).newInstance(),null);
- }catch(Exception e)
- {
- e.printStackTrace();
- }
-
- }
- }
java 代码
- public class PluggableAdapterDemo
- {
-
- public PluggableAdapterDemo()
- {
-
- }
-
- public static void main(String[] args)
- {
- Pathfinder pathfinder=new Pathfinder();
- PluggablePathfinderAdapter adapter=new PluggablePathfinderAdapter(pathfinder);
- adapter.adapt("Digger","dig");
- adapter.adapt("Collector","collect");
- adapter.explore("Digger");
- }
-
- }
分享到:
相关推荐
主要是介绍各种格式流行的软件设计模式,对于程序员的进一步提升起推进作用,有时间可以随便翻翻~~ 23种设计模式汇集 如果你还不了解设计模式是什么的话? 那就先看设计模式引言 ! 学习 GoF 设计模式的重要性 ...
### Pluggable Factory Part 1:复合设计模式的探索与应用 #### 一、引言 在本篇文章中,John Vlissides 探讨了复合设计模式的概念,并提出了一种名为 Pluggable Factory 的模式作为示例。这篇文章最初发表于 1998...
在低压电器领域,ABB同样提供了一系列高品质的产品,其中ABB Pluggable OVR-Multi-Pole产品就是其中的一个代表。 首先,Pluggable OVR-Multi-Pole是一种多极可插拔开关,是ABB低压配电产品线的一部分。多极开关在...
ORA-65122_ Pluggable database GUID conflicts with the GUID of an existing_ITPUB博客.mhtml
Asynchronous Pluggable Protocol(简称APR)是Microsoft为Windows平台设计的一种机制,允许开发者创建自定义的网络协议,这些协议可以被应用程序异步地使用,从而提高系统性能并优化用户体验。 在给定的文件列表中...
Asynchronous Pluggable Protocol(简称APP)是一种网络通信协议,主要设计用于实现高效、灵活的异步通信。在IT行业中,这种协议常被应用于开发网络应用程序,尤其是那些需要处理大量并发连接和数据传输的场景。APP...
解决Linux MySQL缺失依赖包 perl-Module-Pluggable-3.90-141.el6_7.1.x86_64.rpm
在这个版本中,Oracle引入了一个革命性的新特性——可插拔数据库(pluggable database,简称PDB),这一特性极大地增强了数据库的灵活性和可维护性。 可插拔数据库(PDB)的核心理念是将一个物理数据库容器(CDB,...
This specification defines a 28 Gb/s QSFP+ pluggable transceiver solution popularly known as QSFP28. It gathers the appropriate/unique Base Electrical, Optical, Common Management, Module/Plug ...
标题中的“PyPI 官网下载 | tgext.pluggable-0.8.1.tar.gz”指的是一个在Python Package Index(PyPI)上发布的软件包,名为“tgext.pluggable”。这个版本号为0.8.1,打包格式是tar.gz。PyPI是Python开发者分享和...
QSFP 模块 MSA 标准, 可插拔QSFP收发模块标准和Specification文件。
win-acme是一款免费SSL证书自动获取和部署工具,由于官方下载慢,特提供Csdn版本供使用. 具体的使用教程可看我收集的好文地址https://blog.csdn.net/r657225738/article/details/103778925
《Pyramid Pluggable Session:Python Web开发中的会话管理》 Pyramid Pluggable Session是Python Web框架Pyramid中的一个扩展,它提供了一种灵活的方式来管理用户会话。这个扩展允许开发者根据需求选择不同的会话...
标题中的"win-acme.v2.1.4.710.x64.pluggable.zip"是一个软件包,主要用于为网站获取和管理免费的SSL证书。这个程序是win-acme工具的一个版本,它是一个自动化证书管理工具,尤其适用于IIS(Internet Information ...
win-acme是一款免费SSL证书自动获取和部署工具,非常难下载,托朋友下载的,资源宝贵,具体的使用教程可看我收集的好文地址https://blog.csdn.net/r657225738/article/details/103778925
可插拔工厂(Pluggable Factory)模式是软件设计模式的一种,主要目的是允许在不替换具体工厂类实例的情况下,动态地指定和改变产品类型。这一模式是对抽象工厂(Abstract Factory)模式的一种扩展,同时结合了原型...
标题中的“PyPI 官网下载 | django-pluggable-contact-0.0.5.tar.gz”指的是一个在Python Package Index(PyPI)上发布的开源软件包。PyPI是Python开发者发布自己编写的Python模块和库的地方,使得其他开发者可以...
This document defines the low speed electrical and management interface specifications for enhanced Small Form Factor Pluggable(SFP+) modules and hosts. The SFP+ module is a hot pluggable small ...
win-acme是一款免费SSL证书自动获取和部署工具,由于官方下载慢,特提供Csdn版本供使用. 具体的使用教程可看我收集的好文地址https://blog.csdn.net/r657225738/article/details/103778925
QSFP+ 10 Gbs 4X PLUGGABLE TRANSCEIVER