重新复习了一遍门面模式,又有来新的体会,古人云:读书百遍,其义自见,不无道理。所以,一定要多思!多动手,你才会成长。
来说说什么是门面模式:
大家肯定都知道医院(不知道的童鞋,我无能为力,老衲道行不高,表示救不了你,去找观世音菩萨吧,哦!),你去医院看病,一般得经过4个模块,即:挂号->看病->取药->收费. 大家肯定多这些模块很熟悉了,但是有的人有可能不熟悉,对把,这时候我们就需要一个接待员来负责接待他们,
清单1:挂号
public class 挂号 {
public void operation1(){
System.out.println("挂号");
}
}
清单2:看病
public class 看病 {
public void operantion2(){
System.out.println("看病");
}
}
public class 取药 {
public void operation3(){
System.out.println("取药");
}
}
public class 收费 {
public void operation4(){
System.out.println("收费");
}
}
public class 接待员 {
public void 接待() {
System.out.println("您好,我是医院接待员:");
挂号 t1 = new 挂号();
t1.operation1();
看病 t2 = new 看病();
t2.operantion2();
取药 t3 = new 取药();
t3.operation3();
收费 t4 = new 收费();
t4.operation4();
}
}
public class 医院 {
public static void main(String[] args) {
接待员 t=new 接待员();
t.接待();
}
}
清单7:输出
您好,我是医院接待员:
挂号
看病
取药
收费
可以看出,如果病人需要看病,只需要找接待员即可。
除了方便了病人看病。其实门面模式还有一个优点:省略病人不需要知道的方法或者模块,什么意思呢?大家先自己想3-5分钟。
解答:其实是这样的,病人去医院看病,比如得了一个皮肤病,那他应该到皮肤科去看。但是医院里面有很多科,比如:心脏外科,神经外科,泌尿外科,骨科,普通外科,麻醉科。病人可能第一次去医院,他哪里懂那么多!得了皮肤病直接奔心脏外科去了,这。。。。。(老衲道行不高,也救不了他!)
但是,对业务很熟悉的接待元那可就不一样了,他立马就可以知道去哪个科看病。
好了,假如病人知道自己去皮肤科看病,皮肤科的医生帮他看完病,让让在门口等着化验结果,化验的过程需要安静,可这个病人可能很土,又不懂规矩,以为医生不理会他,直接冲进去找医生理论。医生表示很无奈!但是有了接待员,就不一样了,他会引导病人!医生在化验这个过程,接待元会告诉他不需要知道!看病这个模块内部的方法细节就对病人透明!
代码清单:挂号
public class 挂号 {
public void operation1(){
System.out.println("挂号");
}
}
public class 看病 {
public void operantion2(){
System.out.println("看病");
}
public void ohter_operation(){
System.out.println("医生正在进行化验");
}
}
public class 取药 {
public void operation3(){
System.out.println("取药");
}
}
public class 收费 {
public void operation4(){
System.out.println("收费");
}
}
代码清单:接待员
public class 接待员 {
public void 接待() {
System.out.println("您好,我是医院接待员:");
挂号 t1 = new 挂号();
t1.operation1();
看病 t2 = new 看病();
t2.operantion2();
取药 t3 = new 取药();
t3.operation3();
收费 t4 = new 收费();
t4.operation4();
}
}
public class 医院 {
public static void main(String[] args) {
接待员 t=new 接待员();
t.接待();
}
}
我们可以看出,有些是模块内部的方法(看病中的other_operation(),不需要被外部的调用者知道),使用门面模式,就能很好的做到这一点!
以上是我一字字敲出来的,转帖请声明出处,谢谢!