facade模式实例
来源:互联网 发布:深藏身与名 知乎 编辑:程序博客网 时间:2024/04/30 04:27
门面类可以通过门面类进行各类的通讯,而且各类自身也可以直接被调用。
1 有一个类
package com.javapatterns.facade;
public class SignalOutput
...{
public SignalOutput()
...{
}
public void sigStar()
...{
System.out.print("sigStar");
}
public void sigRectangle()
...{
System.out.print("sigRect");
}
public void sigCircle()
...{
System.out.print("?");
}
}
public class SignalOutput
...{
public SignalOutput()
...{
}
public void sigStar()
...{
System.out.print("sigStar");
}
public void sigRectangle()
...{
System.out.print("sigRect");
}
public void sigCircle()
...{
System.out.print("?");
}
}
2 另外一个类
package com.javapatterns.facade;
public class LineOutput
...{
public LineOutput()
...{
}
public void singleLine()
...{
System.out.println("------------------------------");
}
public void doubleLine()
...{
System.out.println("==============================");
}
}
public class LineOutput
...{
public LineOutput()
...{
}
public void singleLine()
...{
System.out.println("------------------------------");
}
public void doubleLine()
...{
System.out.println("==============================");
}
}
3 再一个
package com.javapatterns.facade;
public class StringOutput
...{
public StringOutput()
...{
}
public void StringOut(String str)
...{
System.out.println(str);
}
}
public class StringOutput
...{
public StringOutput()
...{
}
public void StringOut(String str)
...{
System.out.println(str);
}
}
4 facade类
package com.javapatterns.facade;
public class Facade
...{
public Facade()
...{
}
public void ProcessTitle()
...{
StringOutput str = new StringOutput();
LineOutput line = new LineOutput();
SignalOutput sig = new SignalOutput();
line.doubleLine();
sig.sigRectangle();
str.StringOut("something here");
}
public void ProcessSubTitle()
...{
StringOutput str = new StringOutput();
LineOutput line = new LineOutput();
SignalOutput sig = new SignalOutput();
line.singleLine();
sig.sigCircle();
str.StringOut("sub title 1.1");
}
public void ProcessItem()
...{
StringOutput str = new StringOutput();
LineOutput line = new LineOutput();
SignalOutput sig = new SignalOutput();
sig.sigStar();
str.StringOut("process item");
}
}
public class Facade
...{
public Facade()
...{
}
public void ProcessTitle()
...{
StringOutput str = new StringOutput();
LineOutput line = new LineOutput();
SignalOutput sig = new SignalOutput();
line.doubleLine();
sig.sigRectangle();
str.StringOut("something here");
}
public void ProcessSubTitle()
...{
StringOutput str = new StringOutput();
LineOutput line = new LineOutput();
SignalOutput sig = new SignalOutput();
line.singleLine();
sig.sigCircle();
str.StringOut("sub title 1.1");
}
public void ProcessItem()
...{
StringOutput str = new StringOutput();
LineOutput line = new LineOutput();
SignalOutput sig = new SignalOutput();
sig.sigStar();
str.StringOut("process item");
}
}
5 调用
package com.javapatterns.facade;
public class FacadeSample
...{
static public void main(String args[])
...{
Facade facade = new Facade();
facade.ProcessTitle();
facade.ProcessSubTitle();
facade.ProcessItem();
facade.ProcessItem();
facade.ProcessItem();
}
}
public class FacadeSample
...{
static public void main(String args[])
...{
Facade facade = new Facade();
facade.ProcessTitle();
facade.ProcessSubTitle();
facade.ProcessItem();
facade.ProcessItem();
facade.ProcessItem();
}
}
运行结果:
init:
deps-jar:
compile-single:
run-single:
==============================
sigRectsomething here
------------------------------
?sub title 1.1
sigStarprocess item
sigStarprocess item
sigStarprocess item
- facade模式实例
- 设计模式与实例代码:Facade模式
- 设计模式之装饰模式(Facade)简单实例
- 大话设计模式--外观模式 Facade -- C++实现实例
- Facade模式
- Facade模式
- Facade模式
- Facade模式
- Facade模式
- Facade模式
- -facade模式
- Facade 模式
- FACADE 模式
- Facade模式
- Facade模式
- Facade模式
- Facade模式
- facade 模式
- 我们为什么要使用linux
- 用命令行启动和停止iis、sql server
- NET Reactor 3.7.1.0
- 一段获取数据库中 表定义详细内容的SQL语句
- 与企鹅斗智斗勇
- facade模式实例
- Runscanner v1.6.3
- Linux操作系统下软件的安装方法大全
- Java重载Constructor的相互引用(keyword:this)
- Linux:符号链接与硬链接
- 七种程序员的基本技能
- Red Hat 9的初步认识
- 一波三折装Red Hat Linux 9
- 线程的基础知识