zoukankan      html  css  js  c++  java
  • 不一样的代理模式(设计模式十三)

    前言

    什么是代理模式呢?比如说你要去办一件事,你请了一个代理去办,为什么请一个代理去办呢?原因也很简单就是因为这件事复杂,但是你要做的事情就是你的一个手印即可。

    在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。

    在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。

    主要解决:在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(
    比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会给使用者或者系统结构带来很多麻烦,我们可以在访问此对象时加上一个对此对象的访问层。

    何时使用:想在访问一个类时做一些控制。

    如何解决:增加中间层。

    正文

    最典型的就是webservice,在c# 中我们使用引用服务,这个时候我们可以通过访问和我们webservice 相同的方法名即可访问。

    1.要访问对象在远程的服务器上,那么是不可以直接访问的。

    2.提供一个相同的方法进行代理,中间访问过程是非常复杂的,因为这涉及到去调用webservice 然后返回。

    3.一般来说代理模式的代码是自动生成的

    如果要查到代码案例:
    https://www.runoob.com/design-pattern/proxy-pattern.html

    然后我在网上找了一个例子,比如说订单系统的案例,这个例子

    介绍一下优缺点:

    优点: 1、降低了类的复杂度,将一对多转化成了一对一。 2、各个类之间的解耦。 3、符合迪米特原则。

    缺点:中介者会庞大,变得复杂难以维护。

    因为这是一种思想,没有找到好的代码介绍,后续补充。

  • 相关阅读:
    Docker build Dockerfile 构建镜像
    Docker 容器启动 查看容器状态
    Docker 获取镜像
    Docker 容器状态查看
    windows 检测进程pid
    bzoj 1083 最小生成树
    bzoj 2039 最小割模型
    bzoj 2749 杂题
    bzoj 2748 DP
    bzoj 3190 维护栈
  • 原文地址:https://www.cnblogs.com/aoximin/p/13600449.html
Copyright © 2011-2022 走看看