• 学习Go语言之代理模式


    一,关于代理模式:为其它对象提供一种代理以控制对这个对象的访问

    二,网络代理是一种常见的应用,那么就举一个简单的示例来表示代理模式。

     1 package main
     2 
     3 import "fmt"
     4 
     5 type NetWork interface {
     6     Conn()
     7     Close()
     8 }
     9 
    10 // 声明服务器对象
    11 type Server struct {
    12     localIP string
    13 }
    14 
    15 // 真实的网络连接器,连接服务器
    16 type IpNetWork struct {
    17     server *Server
    18 }
    19 
    20 func (c *IpNetWork) Conn(serverIp string) {
    21     c.server = &Server{localIP: serverIp}
    22     fmt.Println(c.server.localIP + "已连接")
    23 }
    24 
    25 func (c *IpNetWork) Close() {
    26     fmt.Println(c.server.localIP + "已关闭连接")
    27 }
    28 
    29 // 代理的网络连接器,代理连接器
    30 type ProxyNetWork struct {
    31     Ip *IpNetWork
    32 }
    33 
    34 func (c *ProxyNetWork) Conn(serverIp string) {
    35     // 代理中实际使用的是真实的网络连接器
    36     c.Ip = &IpNetWork{}
    37     c.Ip.Conn(serverIp)
    38 }
    39 
    40 func (c *ProxyNetWork) Close() {
    41     c.Ip.Close()
    42 }
    43 
    44 func main() {
    45     proxy := &ProxyNetWork{}
    46     proxy.Conn("192.168.51.471")
    47     proxy.Close()
    48 }

  • 相关阅读:
    Spring.Net的AOP的通知
    Spring.Net的IOC入门
    Unity依赖注入使用
    C#dynamic关键字(1)
    多线线程async与await关键字
    C#面试题
    MangoDB的C#Driver驱动简单例子
    安装vuecli和使用elememtUi
    再也不怕aop的原理了
    easyui实现多选框,并且获取值
  • 原文地址:https://www.cnblogs.com/shi2310/p/11418201.html
Copyright © 2020-2023  润新知