Java 设计模式 之 访问者模式(Visitor).ppt

Java 设计模式 之 访问者模式(Visitor).ppt

ID:56527574

大小:301.50 KB

页数:23页

时间:2020-06-27

Java 设计模式 之 访问者模式(Visitor).ppt_第1页
Java 设计模式 之 访问者模式(Visitor).ppt_第2页
Java 设计模式 之 访问者模式(Visitor).ppt_第3页
Java 设计模式 之 访问者模式(Visitor).ppt_第4页
Java 设计模式 之 访问者模式(Visitor).ppt_第5页
资源描述:

《Java 设计模式 之 访问者模式(Visitor).ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Java设计模式之访问者模式(Visitor)商家如何收集用户的反馈意见一个生产高能电池的厂家,下设一个客户服务部门,其主要任务之一就是收集用户的反馈意见,以便改进产品功能和服务质量。以前,客户服务部门只是采用发放调查问卷的方式。调查问卷的问题千篇一律,不能针对特殊用户的兴趣点,尤其一些集体用户,不会认真对待这些问卷,懒得把问卷发到具体的使用者手里,而且,很多用户不愿意花时间把调查问卷寄回。调查结果不全面,不真实,几乎没有任何效果。商家如何收集用户的反馈意见?之后,个性化服务、CRM客户关系管理等概念兴起,客户服务部门引入了一套CRM客户(用户)关系管理系统,对客户信

2、息进行管理。针对不同用户的特点,采用不同的调查方式。采用电话、E-Mail、传真、问卷、登门拜访等多种方式,对用户进行调查访问。针对一些集体用户,比如,企事业单位用户,客户服务人员首先访问联系该单位集体,安排好时间之后,客户服务人员具体访问每一个具体用户,这些用户接受客户服务人员的访问,给出亲身使用电池产品的第一手资料我们可以看到,这是一个典型的VisitorPattern。客户服务部门就是Visitor,不同类型的用户就是被访问者。客户服务部门(Visitor)几乎做了所有的工作,尽量不给用户增加负担。定义表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变

3、各元素类的前提下定义作用于这些元素的新操作。从定义可以看出结构对象是使用访问者模式必备条件,而且这个结构对象必须存在遍历自身各个对象的方法。这便类似于Java语言当中的collection概念了。本质:预留通路,实现回调。涉及角色1.IVisitor抽象访问者角色,为该对象结构中具体元素角色声明一个访问操作接口。该操作接口的名字和参数标识了发送访问请求给具休访问者的具休元素角色,这样访问者就可以通过该元素角色的特定接口直接访问它。2.ConcreteVisitor.具体访问者角色,实现Visitor声明的接口。3.Element定义一个接受访问操作(accept())

4、,它以一个访问者(Visitor)作为参数。4.ConcreteElement具体元素,实现了抽象元素(Element)所定义的接受操作接口。涉及角色5.ObjectStructure结构对象角色,这是使用访问者模式必备的角色。它具备以下特性:能枚举它的元素;可以提供一个高层接口以允许访问者访问它的元素;如有需要,可以设计成一个复合对象或者一个聚集(如一个列表或无序集合)。示例IVisitor——VisitorpublicinterfaceVisitor{publicvoidvisitEnterpriseCustomer(EnterpriseCustomerec);p

5、ublicvoidvisitPersonalCustomer(PersonalCustomerpc);}ConcreteVisitor——PredilectionAnalyzeVisitorpublicclassPredilectionAnalyzeVisitorimplementsVisitor{publicvoidvisitEnterpriseCustomer(EnterpriseCustomerec){System.out.println("现在对企业客户"+ec.getName()+"进行产品偏好分析");}publicvoidvisitPersonalCus

6、tomer(PersonalCustomerpc){System.out.println("现在对个人客户"+pc.getName()+"进行产品偏好分析");}}ConcreteVisitor——ServiceRequestVisitorpublicclassServiceRequestVisitorimplementsVisitor{publicvoidvisitEnterpriseCustomer(EnterpriseCustomerec){System.out.println(ec.getName()+"企业提出服务请求");}publicvoidvisitP

7、ersonalCustomer(PersonalCustomerpc){System.out.println("客户"+pc.getName()+"提出服务请求");}}Element——CustomerpublicabstractclassCustomer{privateStringcustomerId;privateStringname;publicStringgetCustomerId(){returncustomerId;}publicvoidsetCustomerId(StringcustomerId){this.customerId=cu

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。