java--门面模式

      元旦第三天,出去聚了聚,时间有点晚了。。。 

      更一个简单的吧   门面模式。

      代码很简单,一次性上了:

package InvolvedMode.facade;

/**  
 *  FacadeTest : 门面模式
 * @author xuejupo  [email protected] 
 * create in 2015-12-29 下午6:39:02    
 */

public class FacadeTest {
	/**  
	 * main: 
	 * @param args 
	 * void  返回类型   
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//创建一个门面
		Facade face = new Facade();
		//门面执行相应方法 
		face.hasVacant();
		face.identifyCert();
		face.reservation();
	}
}

/**  
* SubSystem1:子系统1,查询是否有空房
* @author xuejupo  [email protected] 
* create in 2015-12-29 下午6:43:53  
*    
*/
class SubSystem1{
	public void HasVacant(){
		System.out.println("查询是否有空房");
	}
}

/**  
* SubSystem2: 子系统2,身份证验证系统
* @author xuejupo  [email protected] 
* create in 2015-12-29 下午6:42:14  
*    
*/
class SubSystem2{
	public void identifyCert(){
		System.out.println("验证身份证");
	}
}

/**  
* SubSystem3:子系统3,订房间子系统
* @author xuejupo  [email protected] 
* create in 2015-12-29 下午6:46:10  
*    
*/
class SubSystem3{
	public void reservation(){
		System.out.println("定一个房间");
	}
}

/**  
* Facade: 门面类,负责客户端和各个子系统之间的交互
* @author xuejupo  [email protected] 
* create in 2015-12-29 下午6:47:07  
*    
*/
class Facade{
	SubSystem3 subSystem3 = new SubSystem3();
	SubSystem2 subSystem2 = new SubSystem2();
	SubSystem1 subSystem1 = new SubSystem1();
	
	/**
	* HasVacant:   调用子系统1的方法,查询是否有空房
	* void  返回类型
	 */
	public void hasVacant(){
		System.out.println("查询是否有空房");
	}
	/**  
	* identifyCert:  调用子系统2的方法,验证身份证
	* void  返回类型   
	*/
	public void identifyCert(){
		System.out.println("验证身份证");
	}
	/**  
	* reservation:  调用子系统3的方法,定房间
	* void  返回类型   
	*/
	public void reservation(){
		this.subSystem3.reservation();
	}
}

        学了这么久设计模式,给我最大的感觉就是设计模式在教我怎么面向对象编程。。  所有的设计模式都可以跟现实的场景对应上。个人感觉,设计模式最大的两个作用,一个是让代码更容易理解,尽量跟现实环境搭上点边,这样以后看你代码的人更容易理解代码,这是为了以后维护方便,二一个,也是最重要的特点就是解耦。大部分设计模式都有这个目的,包括今天这个。解耦最终目的也是为了代码维护起来方便。。

     个人感想: 门面模式很容易理解,门面模式就像是我们众多子系统中的一个对外的“代理”,更像是一个我们子系统的一个接待员。门面模式和代理模式的侧重点不同,代理模式侧重于权限控制,或者对可能易扩展的接口进行封装。比如上网代理。。  门面模式侧重于对子系统的功能封装,就像一个接待员一样,对复杂的功能进行封装,给客户端提供一个可自动化的,简单的接口。

      比如说医院系统,如果侧重于给患者提供标准服务,就像是提供一个前台接待一样,那就用代理。如果侧重于权限控制,比如给依据患者身份提供特殊服务,那就用代理模式。当然也可以两者兼顾。

      

你可能感兴趣的:(java--门面模式)