//
//
// Generated by StarUML(tm) Java Add-In
//
// @ Project : Untitled
// @ File Name : Engineer.java
// @ Date : 2016/8/25
// @ Author :
//
//
/*
* 引擎能操作设备
*/
public interface Engineer {
public void operateDevice();
}
//
//
// Generated by StarUML(tm) Java Add-In
//
// @ Project : Untitled
// @ File Name : GnomeEngineeringManager.java
// @ Date : 2016/8/25
// @ Author :
//
//
/*
* GnomeEngineeringManager 使用引擎去操作设备
*/
public class GnomeEngineeringManager implements Engineer {
private Engineer engineer;
public GnomeEngineeringManager() {
engineer = new GnomeEngineer();
}
public void operateDevice() {
engineer.operateDevice();
}
}
//
//
// Generated by StarUML(tm) Java Add-In
//
// @ Project : Untitled
// @ File Name : GnomeEngineer.java
// @ Date : 2016/8/25
// @ Author :
//
//
public class GnomeEngineer implements Engineer {
private GoblinGlider glider = null;
public GnomeEngineer() {
glider = new GoblinGlider();
}
public void operateDevice() {
glider.attachGlider();
glider.gainSpeed();
glider.takeOff();
}
}
//
//
// Generated by StarUML(tm) Java Add-In
//
// @ Project : Untitled
// @ File Name : GoblinGlider.java
// @ Date : 2016/8/25
// @ Author :
//
//
/*
* 设备类
*/
public class GoblinGlider {
public void attachGlider() {
System.out.println("Glider attached.");
}
public void gainSpeed() {
System.out.println("Gaining speed.");
}
public void takeOff() {
System.out.println("Lift-off!");
}
}
/*
* 有两个变化属于适配器模式:类适配器实现了适配器的接口但是对象适配器使用组合
* 包含适配对象.这个例子使用对象适配方法
*
* 适配器(GnomeEngineer)转换接口到目标类(GoblinGlider)到适当的期望的通过使用者
* (GnomeEngineeringManager).
*/
public class App {
public static void main(String[] args) {
Engineer manager = new GnomeEngineeringManager();
manager.operateDevice();
}
}
/*
Glider attached.
Gaining speed.
Lift-off!
*/
java设计模式进阶_adapter
最新推荐文章于 2025-06-04 10:30:00 发布
