常见设计模式之【外观模式】
来源:互联网 发布:xampp mac 修改根目录 编辑:程序博客网 时间:2024/05/21 10:22
晚上发了几个小时,总结出来给大家分享一下,查看书籍和一些资料,下面是我对Facade模式的理解
老样子,上传demo
package Facade;/** *@Description: Facade模式 *@author Potter *@date 2012-9-7 下午09:35:11 *@version V1.0 */public class App {public static void main(String[] args) {UserService userService=new UserService();User user1=new User();user1.setName("小白");user1.setPassword("123456");//功能1:将小白替换成小黑User user2=new User();user2.setName("小黑");user2.setPassword("123456");Status status=userService.replace(user1,user2);System.out.println("status's code="+status.getCode()+",message="+status.getMessage());//------------------------//功能2:比较user3和user4的等级User user3=new User();user3.setRank(User.common);User user4=new User();user4.setRank(User.diamond);Status status2=userService.compareUserRank(user3, user4);System.out.println("status2's code="+status2.getCode()+",message="+status2.getMessage());}}
服务1接口:
package Facade;/** *@Description: *@author Potter *@date 2012-9-7 下午08:35:02 *@version V1.0 */public interface IServiceOne {public static final int high=0;public static final int equal=1;public static final int low=2;int compareUserRank(User user1,User user2);}
服务接口2:
package Facade;/** *@Description: *@author Potter *@date 2012-9-7 下午08:35:02 *@version V1.0 */public interface IServiceTwo {boolean replace(User user1,User user2);}
facade模式核心接口:
package Facade;/** *@Description: Facade模式核心 *@author Potter *@date 2012-9-7 下午08:39:05 *@version V1.0 */public interface IUserService {Status compareUserRank(User user1,User user2);Status replace(User user1,User user2);}
子系统服务接口实现类:
package Facade;/** *@Description: *@author Potter *@date 2012-9-7 下午09:46:50 *@version V1.0 */public class UserOption implements IServiceOne,IServiceTwo{@Overridepublic int compareUserRank(User user1, User user2) {int result=0;if(user1.getRank()>user2.getRank()){result=high;}else if(user1.getRank()==user2.getRank()){result=equal;}else{result=low;}return result;}@Overridepublic boolean replace(User user1, User user2) {if(user2!=null){user1=user2;return true;}return false;}}
facade模式中介类:
package Facade;/** *@Description: Facade模式中介 *@author Potter *@date 2012-9-7 下午08:42:13 *@version V1.0 */public class UserService implements IUserService{private IServiceOne oneService;private IServiceTwo twoService;public UserService(){UserOption userOption=new UserOption();oneService=userOption;twoService=userOption;}@Overridepublic Status compareUserRank(User user1, User user2) {int result=oneService.compareUserRank(user1, user2);Status status=new Status();status.setCode(2);if(result==IServiceOne.high){status.setMessage("高级");}else if(result==IServiceOne.equal){status.setMessage("平级");}else{status.setMessage("低级");}return status;}@Overridepublic Status replace(User user1, User user2) {boolean result=twoService.replace(user1,user2);Status status=new Status();if(result){status.setCode(1);status.setMessage("替换成功");}else{status.setCode(-1);status.setMessage("替换失败");}return status;}}
User类:
package Facade;/** *@Description: 用户名类 *@author Potter *@date 2012-9-7 下午08:35:37 *@version V1.0 */public class User {public static final int common=0;//普通用户public static final int gold=1;//黄金用户public static final int diamond=2;//钻石用户private String name;private String password;private int rank;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public int getRank() {return rank;}public void setRank(int rank) {this.rank = rank;}}
Status类:
package Facade;/** *@Description: *@author Potter *@date 2012-9-7 下午08:39:46 *@version V1.0 */public class Status {private int code;private String message;public int getCode() {return code;}public void setCode(int code) {this.code = code;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}}
希望对大家facade带来更好的理解........有什么理解不对的地方,请各位指正 谢谢!
- 常见设计模式之【外观模式】
- 设计模式之外观
- 设计模式之外观
- 设计模式 之 外观
- 设计模式之外观
- 设计模式之外观模式
- 设计模式之外观模式
- 设计模式之外观模式
- 设计模式之外观模式
- 设计模式之外观模式
- 设计模式之外观模式
- 设计模式之外观模式
- 设计模式之外观模式
- 设计模式之外观模式
- 设计模式之外观模式
- 设计模式之外观模式
- 设计模式之外观模式
- 设计模式之外观模式
- 图像特征检测(Image Feature Detection)
- Goldbach's Conjecture map+素数表
- 小企业如何消除“成长的烦恼”呢?
- hdu 1281 棋盘游戏
- 我为什么没有加入苹果的iOS APP移动大军?[最近更新:2015-02-03]
- 常见设计模式之【外观模式】
- 找回本机MySQL密码的方法
- Lync Server 2010和Exchange Server 2010 OWA(IM)集成异常
- 33. 实现桌球的反弹
- Oracle Permanent Space Usage Related Queries
- 模板匹配(Match Template)
- Untiy 网络通信。。三合一。。。。
- 背景建模与前景检测(Background Generation And Foreground Detection)
- ADO.NET DataSet:笔记