前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >访问者模式实例扩展客户管理的功能

访问者模式实例扩展客户管理的功能

作者头像
Twcat_tree
发布2022-11-30 17:22:44
1950
发布2022-11-30 17:22:44
举报
文章被收录于专栏:二猫の家

说明:

  1. 公司客户分为企业客户和个人客户
  2. 目前的功能:客户提出服务申请
  3. 需要扩展的功能: (1)客户对公司产品的偏好分析。针对企业和个人客户有不同的分析策略。主要是根据以往购买的历史、潜在购买意向等分析。对于企业客户还要分析其所在行 业的发展趋势、客户的发展预期等 (2)客户价值分析。针对企业和个人客户,有不同的分析策略。主要根据购买的金额大小、购买的产品和服务的多少、购买的频率进行分析的。
  4. 潜在功能:不同客户的需求调查、满意度分析、客户消费预期分析等。 解决方案:
  5. 对象结构就两种:企业客户和个人客户,如何在不想改变类,又要添加新的功能。
  6. 定义一个接口代表要新加入的功能。
  7. 在客户上添加一个通用的accept方法传入代表新加入的功能对象。
  8. 实现新功能对象。
  9. 循环访问整个对象结构的类,让这个类来提供符合客户端业务需求的方法。

UML

代码

代码语言:javascript
复制
package 访问者模式;

public abstract class Customer {
	private String customerId;
	private String name;
	public abstract void serviceRequest();
	 public String getCustomerId() {
         return customerId;
     }
 
     public void setCustomerId(String customerId) {
         this.customerId = customerId;
     }
 
     public String getName() {
         return name;
     }
 
     public void setName(String name) {
         this.name = name;
     }
}
代码语言:javascript
复制
package 访问者模式;

public class EnterpriseCustomer extends Customer {
    private String linkman;
    private String linkTelephone;
    private String registerAddress;
	@Override
	public void serviceRequest() {
		System.out.println(this.getName()+"企业提出服务请求");
	}
	public String getLinkman() {
        return linkman;
    }

    public void setLinkman(String linkman) {
        this.linkman = linkman;
    }

    public String getLinkTelephone() {
        return linkTelephone;
    }

    public void setLinkTelephone(String linkTelephone) {
        this.linkTelephone = linkTelephone;
    }

    public String getRegisterAddress() {
        return registerAddress;
    }

    public void setRegisterAddress(String registerAddress) {
        this.registerAddress = registerAddress;
    }
}
代码语言:javascript
复制
package 访问者模式;

public class PersonalCustomer extends Customer {
	private String telephone;
    private int age;
    @Override
    public void serviceRequest() {
        System.out.println("个人客户:" +this.getName() + " 提出服务请求");
    }
    public String getTelephone() {
        return telephone;
    }

    public void setTelephone(String telephone) {
        this.telephone = telephone;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-06-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档