java设计模式之门面模式

概述:   当我们要实现一个复杂的功能时,这个功能可能是由好几个部分组成。在本文中我们以信息为例,写一封信我们大概需要4个步骤 写信,写信封,装信封,投 递。也就是说在代码我们需要调用4次方法我们才能完成这样的功能,代码的可性都维护性和拓展性都非常低。今天我们这里讲的门面模式就是将这些方法都 封装起来,只对外提供一个方法,将写信,装信封,投递这些操作全都封装到内部,这样可以极大的提高代码的拓展性和可维护性

代码如下:  

          

//定义一个写信的接口
public interface LetterPro {
	 //内容
	public void writeContext(String context);    
	//信封  
	public void fillEnvelope(String address); 
	//把信放到信封里
	public void letterInotoEnvelope();    
	//邮递  
	public void sendLetter(); 
}
//写信的实现类
public class Letter implements LetterPro {

	@Override
	public void writeContext(String context) {
		// TODO Auto-generated method stub
		Log.i("flag", "写信");
	}

	@Override
	public void fillEnvelope(String address) {
		// TODO Auto-generated method stub
		Log.i("flag", "写信封");
	}

	@Override
	public void letterInotoEnvelope() {
		// TODO Auto-generated method stub
		Log.i("flag", "把信装到信封中");
	}

	@Override
	public void sendLetter() {
		// TODO Auto-generated method stub
		Log.i("flag", "邮寄");
	}
	
}

/**
	 * 在这个类中,把写信的过程都封装到这里面,只对外提供一个方法,得到信的内容和地址就可以了
	 * 这就是门面模式
	 */
	Letter letter = new Letter();
	public void  sendMessage(String content,String address){
		//写信
		letter.writeContext(content);
		//写信封
		letter.fillEnvelope(address);
		//装信封
		letter.letterInotoEnvelope();
		//发出
		letter.sendLetter();
		
	}


/**
	 * 门面模式就是将方法实现的细节都封装到内部,只对外提供方法,极大的提高了拓展性
	 */
	/**
	 * 在这里我们以 写信为例  
	 * 以前我们写信要经过4个步骤, 写内容,装信封,写地址,邮寄
	 * 过程太繁琐,我们可以将这些方法都封装起来,只对外提供一个方法,在内部把这些事情做完
	 */

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        Facade facade = new Facade();
        facade.sendMessage("内容", "地址");
    }



github地址为:  https://github.com/zhouwei5200/FacadePattern


你可能感兴趣的:(java,java设计模式)