美文网首页
设计模式之代理模式

设计模式之代理模式

作者: nade_s | 来源:发表于2018-07-07 14:12 被阅读0次

代理模式 顾名思义 就像某商品生产商 将产品交由 某一销售公司由他们的销售渠道代理出售一样 

此设计模式最主要就是解耦和了  角色分配和逻辑拆分 能更好的处理逻辑关系

这个商品生产商 就是被代理类(被代理人) 销售公司就是代理类(代理人) 销售团队就是抽象方法(也就是卖商品) 

所以代理模式 就是由代理人 替 被代理人 完成 某一任务 

代理模式有三部分组成 第一部分 要有一个被代理类 (商品生产商) 一个抽象接口 (卖商品) 一个代理类(销售公司)

下面我们上代码 看一下这种关系 代理模式

public class Producers implements SalesInf{ 

// 生产商 被代理类

String name;

String function;

Buidler buidler;

public Producers(Buidler buidler) {

    this.name = buidler.name;

    this.function = buidler.function;

}

public String getName() {

    return name;

}

public void setName(String name) {

    this.name = name;

}

public String getFunction() {

    return function;

}

public void setFunction(String function) {

    this.function = function;

}

static class Buidler{

    String name;

    String function;

    public Buidler setName(String name){

        this.name = name;

        return this;

    }

    public Buidler setFunction(String function){

        this.function = function;

        return this;

    }

    public Producers build(){

        return new Producers(this);

    }

}

@Override

public void salesMothed() {

    System.out.print("我是生产商,商品是我的\n");

} }

public interface SalesInf { 

// 销售 抽象方法 

void salesMothed(); 

}

public class Agent implements SalesInf{ 

// 代理类 商品代理人 

private Producers producers;

public Agent(Producers producers) {

    this.producers = producers;

}

@Override

public void salesMothed() {

    producers.salesMothed();

    System.out.print("我是代理人,商品不是我的,但是只有我能卖\n");

}

public class CompanyTest {

public static void main(String[] args) {

    Producers.Buidler buidler = new Producers.Buidler();

    Producers producers = buidler.setName("三聚氰胺").setFunction("我很好吃").build();

    Agent agent = new Agent(producers);

    agent.salesMothed();

} }

这是输出结果 和 执行顺序

我是生产商,商品是我的 我是代理人,商品不是我的,但是只有我能卖

Process finished with exit code 0

相关文章

  • 设计模式之代理模式

    设计模式之代理模式 10分钟看懂动态代理设计模式(升级篇)-对这篇动态代理模式的思路整理 仿JDK实现动态代理逻辑...

  • 代理模式

    设计模式之代理模式 什么是代理模式? 指的事代理对象为其他对象提供代理以控制对被...

  • Java设计模式之代理模式

    Java设计模式之代理模式 代理模式 静态代理 动态代理 为什么需要代理 通过代理,我们能够不用知道委托人是谁,而...

  • Java代理模式之JDK动态代理

    了解什么是动态代理模式,可参考Java设计模式之代理模式 简介 JDK动态代理是java.lang.reflect...

  • 设计模式之代理模式2

    设计模式之代理模式运用 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对...

  • 设计模式之代理模式

    设计模式之代理模式 简介 代理模式是结构型设计模式。 当无法或不想直接访问某个对象或访问某个对象存在困难时可以通过...

  • 设计模式之代理模式

    title: 设计模式之代理模式date: 2018-08-15 20:25:42tags: 设计模式 笔记 Ja...

  • java设计模式之代理模式(静态代理)

      今天给大家分享的是java设计模式之代理模式中的静态代理模式,动态代理模式将在后面文章中给出。如有不足,敬请指...

  • Android 代理模式

    Android 设计模式系列文章 Android 23种设计模式 前言 代理模式可能是我们平时开发中最常见的模式之...

  • 设计模式之代理模式

    设计模式之代理模式 1.代理模式的定义 为其他对象提供一种代理以控制对这个对象的访问. 2.代理模式的使用场景 当...

网友评论

      本文标题:设计模式之代理模式

      本文链接:https://www.haomeiwen.com/subject/kyuwuftx.html