简单理解设计模式之外观模式

最近有点忙,没什么时间来写博客,所以一闲下来就想起来,还有很多的模式没有跟大家一起分享,所以今天就来跟大家一起谈谈设计模式之外观模式。

1.什么是外观模式?

说实话,平常我很少看见跟外观模式有关的一些讲解,(也可能是我孤陋寡闻吧)。

闲话就不多说了,不管怎样我们先来看看外观模式的定义:

为子系统的一组接口提供一个一致的界面,使这个子系统变得更加的容易使用

在这里我们要注意的是接口,这里的接口不是我们平常所使用的interface,这里它可以使interface,但是也可以使一个类的方法,或者变量,一句话就是除了接口还有类。

2.什么时候使用?

我觉得这是我们最关心的话题,在我的心里我觉得设计模式无非不是设计原则的实现(这里是最少知识原则),使用模式会使我们开发更有效率。那么我们什么时候使用呢?个模式?

我觉得外观模式其实它的本质是:降低对象之间的耦合度,减少系统之间的依赖,使开发维护更简单

我觉得对于一个模式的初步了解这样就已经足够了,说太多的理论知识会把人绕晕的,明白原理,然后在实际的项目中运用,再运用,我觉得这个才是最重要的。

为了更好的理解,下面我通过一个很简单的例子来谈谈,希望人人都能举一反三,当然这也包括我。

再看看图理解一下:


看完后,我们来通过代码来实现一个例子:斗地主

斗地主我们是不是要有三个人才行,所以

第一步创建一个Person的接口:

package com.zqu.yqy.scdn.test.test002;

public interface Person {
	
	void showInformation();

}

第二步实现类:(2个农民,一个地主)

package com.zqu.yqy.scdn.test.test002;

public class farmer1 implements Person {

	@Override
	public void showInformation() {
		System.out.println("我叫张三,我是农民1");
	}

}


package com.zqu.yqy.scdn.test.test002;

public class farmer2 implements Person{

	@Override
	public void showInformation() {
		System.out.println("我是李四,我是农民2");
		
	}

}


package com.zqu.yqy.scdn.test.test002;

public class landHolder implements Person {

	@Override
	public void showInformation() {
		System.out.println("我是老板,你们不能问我的名字,因为我是地主");

	}

}
然后是一个游戏接口:

package com.zqu.yqy.scdn.test.test002;

public class FaceInterface {
	public void fightTheLandlord(){
		Person p1 = new farmer1();
		Person p2 = new farmer2();
		Person p3 = new landHolder();
		System.out.println("斗地主开始。。。。。。。");
		System.out.println("谁是农民?");
		p1.showInformation();
		p2.showInformation();
		System.out.println("谁是地主?");
		p3.showInformation();
		System.out.println("知道谁是地主后,我们开始打牌吧。。。");
	}

}


然后就是我们的实现类:(开始斗地主)

package com.zqu.yqy.scdn.test.test002;

public class client {

	public static void main(String[] args) {
		FaceInterface f = new FaceInterface();
		f.fightTheLandlord();
	}

}

运行的结果:



I现在,朋友,斗地主结束了哦,嘻嘻


看到这里懂了吗?不懂再看一遍,或者是用图片上打叉的方法来实现一遍(这个挺重要的)。


还有就是外观模式还跟中介者模式相似,后面会说到。


然后想说的就是博主水平有限,有不足的地方还请说一下,谢谢,好的地方也可以聊一下。







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值