外观模式
来源:互联网 发布:数据挖掘毕业设计 编辑:程序博客网 时间:2024/06/06 03:53
外观模式
为系统中的一组接口提供一个一致的界面,Façade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
一 、 概述
外观模式是简化用户和子系统进行交互的成熟模式,外观模式的关键是为子系统提供一个称作外观的类,该外观类的实例负责和子系统中类的实例打交道。当用户想要和子系统中的若干个类的实例打交道时,可以代替地和子系统的外观类的实例打交道。二、外观模式的结构与使用
模式的结构中包括两种角色:
1.子系统(Subsystem)_1:CheckWord.java
public class CheckWord{
public final intbasicAmount=85;
Stringadvertisement;
int amount;
public CheckWord(Stringadvertisement){
this.advertisement=advertisement;
}
public void setChargeAmount(){
amount=advertisement.length()+basicAmount; //计算出计费字符数目
}
public intgetAmount(){
return amount;
}
}
1.子系统(Subsystem)_2:Charge.java
public class Charge{
public final intbasicCharge=12;
CheckWordcheckWord;
Charge(CheckWordcheckWord){
this.checkWord=checkWord;
}
public void giveCharge(){
int charge=checkWord.getAmount()*basicCharge;
System.out.println("广告费用:"+charge+"元");
}
}
1.子系统(Subsystem)_3 :TypeSeting.java
public class TypeSeting{
String advertisement;
public TypeSeting(Stringadvertisement){
this.advertisement=advertisement;
}
public void typeSeting(){
System.out.println("广告排版格式:");
System.out.println("********");
System.out.println(advertisement);
System.out.println("********");
}
}
.外观(Facade):ClientServerFacade.java
public class ClientServerFacade{
private CheckWordcheckWord;
private Charge charge;
private TypeSetingtypeSeting;
String advertisement;
public ClientServerFacade(Stringadvertisement){
this.advertisement=advertisement;
checkWord=newCheckWord(advertisement);
charge=new Charge(checkWord);
typeSeting=newTypeSeting(advertisement);
}
public void doAdvertisement(){
checkWord.setChargeAmount();
charge.giveCharge();
typeSeting.typeSeting();
}
}
3.应用 Application.java
public class Application{
public static void main(String args[]){
ClientServerFacadeclientFacade;
String clientAdvertisement="鹿花牌洗衣机,价格2356元,联系电话:1234567";
clientFacade=newClientServerFacade(clientAdvertisement);
clientFacade.doAdvertisement();
}
}
三、外观模式的优点
- 外观模式
- 外观模式
- 外观模式
- 外观模式
- 外观模式
- 外观模式
- 外观模式
- 外观模式
- 外观模式
- 外观模式
- 外观模式
- 外观模式
- 外观模式
- 外观模式
- 外观模式
- 外观模式
- 外观模式
- 外观模式
- 基于邻域嵌入的超分辨率重建
- 复习闪回功能
- 字符集和字符编码(Charset & Encoding)
- KVC 与 KVO 理解
- 代码疑云(11)——指针与类型转换
- 外观模式
- Android 监听屏幕解锁事件
- POJ 2594
- Linux 上使用QQ (pidgin + lwqq )出现的问题
- Emacs24.3下配置Java开发环境 Cedet+Elib+JDEE+ECB
- 关于@synchronized(self)的用法
- 电梯突然断电下坠时,一定要这么做--能捡回一条命
- java的设计模式之代理模式
- linux下的find命令