抽象類WindowAdapter是變壓器模式的一個例子
抽象類WindowAdapter是為接受視窗的事件而准備的
顯然
圖
SwingUI類的代碼如下
import java
import java
import java
import javax
class SwingUI extends JFrame implements ActionListener
{
JLabel text
JButton button
JPanel panel;
private boolean m_clickMeMode = true;
Public SwingUI()
{
text = new JLabel(
button = new JButton(
button
panel = new JPanel();
panel
panel
getContentPane()
panel
panel
}
public void actionPerformed(ActionEvent event)
{
Object source = event
if (m_clickMeMode)
{
text
button
m_clickMeMode = false;
}
else
{
text
button
m_clickMeMode = true;
}
}
public static void main(String[] args)
{
SwingUI frame = new SwingUI();
frame
WindowListener listener = new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System
}
};
frame
frame
frame
}
}
代碼清單
顯然
本例子在運行時的樣子
圖
圖
利用變壓器模式指方為圓
中國古代有趙高指鹿為馬的故事
變壓器模式在本例子的類圖如下
圖
package com
public class Cube
{
public Cube(double width)
{
this
}
public double calculateVolume()
{
return width * width * width;
}
public double calculateFaceArea()
{
return width * width;
}
public double getWidth()
{
return this
}
public void setWidth(double width)
{
this
}
private double width;
}
代碼清單
package com
public interface BallIF
{
double calculateArea();
double calculateVolume();
double getRadius();
void setRadius(double radius);
}
代碼清單
package com
public class MagicFinger implements BallIF
{
public MagicFinger(Cube adaptee)
{
super();
this
radius = adaptee
}
public double calculateArea()
{
return PI *
}
public double calculateVolume()
{
return PI *
}
public double getRadius()
{
return radius;
}
public void setRadius(double radius)
{
this
}
private double radius =
private static final double PI =
private Cube adaptee;
}
代碼清單
如果讀者還記得中學的數學的話
顯然
關於模式實現的討論
本模式在實現時有以下這些值得注意的地方
第一
第二
第三
問答題
第
現在你的女朋友想要一只小狗
第
第
第
問答題答案
第
圖
package com
public interface Doggie
{
void wao();
void fetchBall();
void run();
void sleep();
void setName(String name);
String getName();
}
代碼清單
package com
public class Kittie {
public void miao(){}
public void catchRat() {
}
public void run() {
}
public void sleep() {
}
public String getName(){ return name; }
public void setName(String name){ this
}
代碼清單
package com
From:http://tw.wingwit.com/Article/program/Java/gj/201311/27340.html