设计模式学习—业务代表模式(Business Delegate Design Pattern)
一、我的理解
二、实现方式
三、实例
![](/assets/blank.gif)
Java实例
package com.study.dp.business.delegate;public interface BusinessService {public void doProcessing();}
EJBService类:业务的实际实现方式一
package com.study.dp.business.delegate;public class EJBService implements BusinessService {@Overridepublic void doProcessing() {System.out.println("Processing task by invoking EJB Service");}}
JMSService类:业务的实际实现方式二
package com.study.dp.business.delegate;public class JMSService implements BusinessService {@Overridepublic void doProcessing() {System.out.println("Processing task by invoking JMS Service");}}
BusinessLookUp类:业务查询类,有点类似于业务实现的工厂模式
package com.study.dp.business.delegate;public class BusinessLookUp {public BusinessService getBusinessService(String serviceType) {if(serviceType.equalsIgnoreCase("EJB")) {return new EJBService();}else {return new JMSService();}}}
BusinessDelegate类:业务代表类,向客户端提供调用接口
package com.study.dp.business.delegate;public class BusinessDelegate {private BusinessLookUp lookupService = new BusinessLookUp();private BusinessService businessService;private String serviceType;public void setServiceType(String serviceType) {this.serviceType = serviceType;}public void doTask() {businessService = lookupService.getBusinessService(serviceType);businessService.doProcessing();}
}
Client类:客户端
package com.study.dp.business.delegate;public class Client {BusinessDelegate businessService;public Client(BusinessDelegate businessService) {this.businessService = businessService;}public void doTask() {businessService.doTask();}}
Demo类:测试类
package com.study.dp.business.delegate;public class Demo {public static void main(String[] args) {BusinessDelegate businessDelegate = new BusinessDelegate();businessDelegate.setServiceType("EJB");Client client = new Client(businessDelegate);client.doTask();businessDelegate.setServiceType("JMS");client.doTask();}}
四、应用场景
设计模式学习—业务代表模式(Business Delegate Design Pattern)相关推荐
- 【设计模式】业务代表模式
业务代表模式(Business Delegate Pattern)用于对表示层和业务层解耦.它基本上是用来减少通信或对表示层代码中的业务层代码的远程查询功能.在业务层中我们有以下实体. 客户端(Cli ...
- 设计模式之装饰器模式(Decorator Design Pattern)
装饰器模式是八种结构型模式之一,通过一个装饰类来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能. 装饰器模式与代理模式非常像,区别是代理模式是原始功能上附加功能,而装饰器模式是增强原 ...
- 设计模式-业务代表模式-个人思考
原文章地址:业务代表模式 | 菜鸟教程 前言:个人思考不好说对错. 一 故事: 话说鸿鑫今天挺累,走到了足浴中心,接待鸿鑫的是前台张姐,鸿鑫说我在某团团了8号技师,张姐拿过验证码,电脑上一搜,是晶晶技 ...
- Java业务代表模式
业务代表模式(Business Delegate Pattern)用于对表示层和业务层解耦.它基本上是用来减少通信或对表示层代码中的业务层代码的远程查询功能.在业务层中我们有以下实体. 客户端(Cli ...
- 设计模式 - 学习笔记 - 工厂模式Factory Pattern
设计模式 - 学习笔记 - 工厂模式Factory Pattern 1. 简单工厂 1.1 应用场景 1.2 UML 1.3 优劣分析 好处 缺点 1.4 代码示例 抽象产品 AbstractProd ...
- 设计模式学习之代理模式学习(一)
设计模式学习之代理模式学习(一) 关于设计模式想必学习过Java语言的人都知道吧,当时对其进行深入学习的的人应该不是很多.在我看来设计方面的知识相比于框架应用配置等知识要有意思的多,并且设计模式的对一 ...
- Java设计模式学习 - 模版方法模式策略模式
个人博客项目地址 希望各位帮忙点个star,给我加个小星星✨ 设计模式-模板方法&策略模式 简单介绍 模板方法模式(Template):定义一个操作中的算法的骨架,而将一些步骤延迟到子类中. ...
- 乐在其中设计模式(C#) - 责任链模式(Chain of Responsibility Pattern)
原文:乐在其中设计模式(C#) - 责任链模式(Chain of Responsibility Pattern) [索引页] [源码下载] 乐在其中设计模式(C#) - 责任链模式(Chain of ...
- 设计模式学习----装饰器模式
这两天本来是自在学习java collection Framework的Fail Fast底层机制,看到核心的部分时,突然意识到设计模式的问题,上大学到现在我还没有真正理解过设计模式的概念,于是用了大 ...
- 设计模式学习笔记——外观模式
外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口.这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性. 这种模式涉及 ...
最新文章
- python算法与数据结构-冒泡排序算法(32)
- python3 从尾部读取_Python3基础:列表详解
- [iOS]深度遍历view的subview
- Java笔记-Java中备忘录模式
- 过去15年,到底是什么真正推动了云计算的革命?
- 基于react的简单TODOList
- 设计思维Design Thinking
- 买苹果配件什么最靠谱 认识苹果MFi认证
- iOS APP上线App Store流程(包括.p12导出)
- kali linux 网络渗透测试学习笔记(三)社会工程学之Java攻击:钓鱼网站制作
- 兼容IE8的文件下载,解决IE下载文本和图片直接打开问题
- (Leiden)From Louvain to Leiden:guaranteeing well-connected communities
- excel数据分析案例——电信运营商用户流失分析
- 安全狗漏洞通告|Linux kernel越界写入漏洞解决方案
- 【思维进阶】新手小白如何练习写作
- 计算机网络基础知识及应用教学视频,计算机网络基础教程介绍以及视频讲解
- error: identifier “AT_CHECK“ is undefined
- 《Low-Dose CT》去噪论文
- Pyhton学习笔记第一天(Python基本语句)
- 2021西工大计算机专硕,2021西工大计算机专硕经验贴
热门文章
- 【贝叶斯算法分类】基于朴素贝叶斯算法(bayesian)的数据分类预测附matlab代码
- Word控件Aspose.Words教程:使用 Java 处理 SXC 和 FODS 文件
- Django学习(二):数据库操作
- python中倒背如流_人民日报发布:100首古诗词,只要孩子倒背如流,中高考必满分...
- python cx_oracle 安装_Python 离线安装cx_Oracle
- C语言习题——提示输入3个整数值,分别代表日,月,年
- 快速上线小程序,Serverless云开发带来哪些极致体验?
- 泰马重磅推出人脸识别直播,Sioeye成为马拉松新看点
- (附源码)springboot网络空间安全实验教学示范中心网站 毕业设计 111454
- DIOR数据集转化为COCO格式