您的位置:首页 > 编程语言 > Java开发

外观模式 坦克大战java代码实现

2019-03-26 12:07 295 查看

目录《一个实例讲完23种设计模式》

当前:外观模式

需求:坦克大战

创建两种坦克

坦克类型 射程 速度
b70 70米 时/70公里
b50 50米 时/70公里

关于本模式的特别需求说明

将发射炮弹和走行的具体机能由动力驱动层去实现。
但是这些机能要对电子操作层提供一个接口。
模式说明
这是一个很简单的模型,没啥好说的。
这是一个架构模型,一个模块对外提供的接口必须由一个外观类出承载。
所有的项目都这么设计,这几乎是一个规范。

类图

代码

[code]class Function{
static Function mFunction = new Function();

4000
static Function get(String mStr) {
mFunction.setOperation(mStr);
return mFunction;
}
public String mOperation;
public void setOperation(String mStr) {
this.mOperation = mStr;
}
public void exe() {
System.out.println(mOperation);
}
};
interface IPowerFacade{
void shot();
void run();
}
class Shot{
void shot() {
Function.get("炮弹发射").exe();
}
}
class Run{
void run() {
Function.get("速度200/公里").exe();
}
}

class PowerFacade implements IPowerFacade{
Shot mShot;
Run mRun;
public PowerFacade() {
mShot = new Shot();
mRun = new Run();
}
public void shot() {
mShot.shot();
}
public void run() {
mRun.run();
}
}
class Controllayer{
PowerFacade mPowerFacade;
public void setmPowerFacade(PowerFacade mPowerFacade) {
this.mPowerFacade = mPowerFacade;
}
public void run() {
mPowerFacade.shot();
mPowerFacade.run();
}
}
public class Client {
public static void main(String[] args) {
System.out.println("hello world !");
Controllayer controllayer = new Controllayer();
PowerFacade facade = new PowerFacade();
controllayer.setmPowerFacade(facade);
controllayer.run();

}
}

运行结果

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: