File tree Expand file tree Collapse file tree 3 files changed +91
-0
lines changed
Expand file tree Collapse file tree 3 files changed +91
-0
lines changed Original file line number Diff line number Diff line change 1+ package designpattern .facade ;
2+
3+ /**
4+ * 外观类,它需要了解所有的子系统的方法或属性,进行组合,以备外界调用
5+ *
6+ * @author liu yuning
7+ *
8+ */
9+ public class Facade {
10+ SubSystemOne subSystemOne ;
11+ SubSystemTwo subSystemTwo ;
12+ SubSystemThree subSystemThree ;
13+ SubSystemFour subSystemFour ;
14+
15+ public Facade () {
16+ subSystemOne = new SubSystemOne ();
17+ subSystemTwo = new SubSystemTwo ();
18+ subSystemThree = new SubSystemThree ();
19+ subSystemFour = new SubSystemFour ();
20+ }
21+
22+ public void methodA () {
23+ System .out .println ("方法组A:" );
24+
25+ subSystemOne .methodOne ();
26+ subSystemTwo .methodTwo ();
27+ subSystemFour .methodFour ();
28+ }
29+
30+ public void methodB () {
31+ System .out .println ("方法组B:" );
32+
33+ subSystemThree .methodThree ();
34+ subSystemFour .methodFour ();
35+ }
36+ }
Original file line number Diff line number Diff line change 1+ package designpattern .facade ;
2+
3+ /**
4+ * 外观类客户端
5+ *
6+ * @author liu yuning
7+ *
8+ */
9+ public class FacadeClient {
10+ public static void main (String [] args ) {
11+ // 由于Facade的作用,客户端可以根本不知道四个子系统的存在
12+ // 启发:维护一个遗留的大型系统时,可能这个系统已经非常难以维护和扩展了,此时可以
13+ // 为新系统开发一个外观Facade类,来提供设计粗糙或高度复杂的遗留代码的比较清晰简单
14+ // 的接口,让新系统与Facade对象交互,Facade与遗留代码交互所有复杂的工作
15+ Facade facade = new Facade ();
16+
17+ facade .methodA ();
18+ facade .methodB ();
19+ }
20+ }
Original file line number Diff line number Diff line change 1+ package designpattern .facade ;
2+
3+ /**
4+ * “系统”接口,只是标记接口,暂无任何意义
5+ *
6+ * @author liu yuning
7+ *
8+ */
9+ public interface SystemInterface {
10+
11+ }
12+
13+ class SubSystemOne implements SystemInterface {
14+ public void methodOne () {
15+ System .out .println ("子系统方法一" );
16+ }
17+ }
18+
19+ class SubSystemTwo implements SystemInterface {
20+ public void methodTwo () {
21+ System .out .println ("子系统方法二" );
22+ }
23+ }
24+
25+ class SubSystemThree implements SystemInterface {
26+ public void methodThree () {
27+ System .out .println ("子系统方法三" );
28+ }
29+ }
30+
31+ class SubSystemFour implements SystemInterface {
32+ public void methodFour () {
33+ System .out .println ("子系统方法四" );
34+ }
35+ }
You can’t perform that action at this time.
0 commit comments