adapter的设计思想有两种实现方式,一种是对象模式的适配器,一种是类模式的适配器。
首先弄个对象模式的适配器,做一个无聊的事情,把Frame和String做一个适配器,不过只针对String的length()方法。也就是说,我们希望一个东西既能显示象一个Frame显示出来,又能够用length()方法返回它的长度,当然是字符串的长度。
package structure.adapter2;
import java.awt.*;
public class FrameStrAdapter extends Frame {
private String s=new String();
public FrameStrAdapter(String s){this.s=s;}
public String length(){
return "某某牌钙片提醒您,本字符串的长度为:"+String.valueOf(s.length());
}
public void init(){
TextArea ta=new TextArea();
Button b=new Button("Click me");
setLayout(new FlowLayout());
add(ta);
add(b);
setSize(400,400);
setVisible(true);
}
}
package structure.adapter2;
public class Demo {
public static void main(String[] args) {
// TODO Auto-generated method stub
FrameStrAdapter fsa=new FrameStrAdapter("1234567890");
fsa.init();
System.out.println(fsa.length());
}
}
这是一个对象组合的适配器模式。如果return "某某牌钙片提醒您,本字符串的长度为:"+String.valueOf(s.length());换成return s.length(),那么这就是单纯的适配器模式了,不过加上了"某某牌钙片提醒您,本字符串的长度为:",根据我的理解,这又是一个油漆工模式的应用。现在地铁到站,往往不合适宜的出现这种广告,我们现在把广告做到java里来,效仿他们。
写一个类模式的例子
一个Frame,里面有一个TextArea 一个Button,要实现的功能是,点击Button的时候,打印出textarae里的内容出来。
package structure.adapter3;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
public class FrameAdapter extends Frame implements ActionListener,WindowListener {
protected TextArea ta=new TextArea();
protected Button bn=new Button("Click me");
public void init(){
setLayout(new FlowLayout());
add(ta);
add(bn);
bn.addActionListener(this);
setSize(600,400);
setVisible(true);
this.addWindowListener(this);
}
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
System.out.println(ta.getText());
}
public void windowOpened(WindowEvent arg0) {
// TODO Auto-generated method stub
}
public void windowClosing(WindowEvent arg0) {
// TODO Auto-generated method stub
System.exit(0);
}
public void windowClosed(WindowEvent arg0) {
// TODO Auto-generated method stub
}
public void windowIconified(WindowEvent arg0) {
// TODO Auto-generated method stub
}
public void windowDeiconified(WindowEvent arg0) {
// TODO Auto-generated method stub
}
public void windowActivated(WindowEvent arg0) {
// TODO Auto-generated method stub
}
public void windowDeactivated(WindowEvent arg0) {
// TODO Auto-generated method stub
}
}
FrameAdapter既是一个Frame也是一个ActionListener还是一个WindowListener,这就是类模式的适配器
<!-- -->
分享到:
相关推荐
《Java设计模式之禅》是一本深入浅出讲解设计模式的书籍,书中不仅包含23种经典设计模式的案例,还详细介绍了设计模式背后的思想和原则,适合初学者以及对设计模式有一定了解的程序员阅读。本书旨在帮助读者理解如何...
此外,为了确保参考资料的权威性,建议读者查阅原书《Java设计模式》以获得更加详尽的解释和说明。如果有任何意见或建议,可以通过提供的电子邮箱与作者联系。在学习设计模式的过程中,理解每一个模式的意图、结构、...
Java设计模式是软件工程中的一种最佳实践,它提供了一种在特定情况下解决常见问题的模板。这些模式在软件开发中被广泛使用,因为它们能够使代码更可读、可维护和可扩展。在这个名为"java设计模式程序源代码"的压缩包...
java 设计模式 java 设计模式是软件工程的基石,它们被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式可以让代码更容易被他人理解、保证代码可靠性、提高代码的重用性。 一、设计模式...
适配器模式是一种在软件工程中广泛使用的结构型设计模式,它允许两个不兼容的接口之间进行通信。在Java中,适配器模式扮演着重要的角色,尤其在处理遗留代码或者第三方库集成时,能够有效地解决接口不匹配的问题。...
Adapter模式是一种结构型设计模式,它允许不兼容的类或接口之间进行通信。在软件开发中,我们常常遇到这样的情况:需要使用一个已经存在的类,但是它的接口与我们的需求不匹配,这时候Adapter模式就能派上用场。它...
Java的23种设计模式是软件工程中非常重要的概念,它们是解决常见编程问题的成熟解决方案,被广泛应用于各种复杂的软件开发中。设计模式不是具体的代码或库,而是一种通用的、可重用的设计方案,它描述了在特定上下文...
本文的深入探讨将帮助读者理解设计模式如何在实际编程中发挥作用,通过具体的例子和应用场景来阐述每个模式的用法和价值。通过学习这些设计模式,开发者可以更好地应对复杂的软件设计挑战,写出更加优雅和高效的代码...
适配器模式(Adapter Pattern)是软件设计模式中的一种,其主要目的是解决接口不兼容问题,使得原本因为接口差异无法协同工作的类能够协同工作。在Java中,适配器模式通常分为类的适配器模式和对象的适配器模式。 ...
Java设计模式详解涉及到23种设计模式,这些设计模式可以根据其目的和范围被划分为三大类:创建型模式(Creational Patterns)、结构型模式(Structural Patterns)和行为型模式(Behavioral Patterns)。下面将详细...
### Java 23种设计模式详解 #### 一、设计模式概述 设计模式是一种编码实践,旨在通过标准化的解决方案来解决常见的软件设计问题。这些模式不仅有助于提高代码的可读性和可维护性,还能增强软件的灵活性和扩展性。...
Java设计模式是软件开发中的重要概念,它是一种在特定情境下解决问题的经验总结,可以提高代码的可重用性、灵活性和可维护性。这23种设计模式是面向对象编程中广泛采用的经典模式,涵盖了创建型、结构型和行为型三大...
通过以上对Java设计模式中创建型模式和结构型模式的详细介绍,我们可以看到这些模式是如何帮助我们在实际编程过程中解决问题的。无论是创建对象,还是对现有对象进行扩展或组合,设计模式都能提供一种优雅的解决方案...
标题《从追MM谈Java的23种设计模式》独特地将Java设计模式与“追女孩”的生活场景相结合,通过一系列生动的例子来解释各种设计模式的概念和使用场景。在IT行业中,这种以生活场景来比喻技术概念的方式,能帮助人们更...
在“设计模式--适配器模式java例子”中,我们可以假设有一个遗留的`OldLibrary`,它的接口与我们当前项目的需求不一致。例如,`OldLibrary`有一个`OldDevice`类,它有一个方法`oldMethod()`,而我们的新系统需要一个...
### JAVA23中设计模式详解 #### 一、概述 设计模式是在软件设计过程中解决常见问题的一套可复用的解决方案。《JAVA23中设计模式》是一份针对Java程序员的指南,旨在通过一系列示例和理论讲解,帮助读者理解和掌握...
Java设计模式是软件开发中的重要概念,它是一种在特定情境下解决问题的经验总结,可以提高代码的可重用性、可维护性和灵活性。本资源包含了23种经典的设计模式,每一种都有具体的Java实现源码,这为学习和理解设计...
Java作为一种广泛应用的面向对象编程语言,其灵活性和强大的功能使其成为实现设计模式的理想选择。本资源提供了23种设计模式的Java实现,通过具体的代码示例帮助开发者深入理解并掌握这些模式。 1. **单例模式...