zoukankan      html  css  js  c++  java
  • Golang-工厂模式

    Golang-工厂模式
      Golang 的结构体没有构造函数,通常可以使用工厂模式来解决这个问题。
      
      看一个需求
      一个结构体的声明是这样的: package model
      type Student struct { 
        Name string...
      }
      因为这里的Student 的首字母S 是大写的,如果我们想在其它包创建 Student 的实例(比如main 包), 引入 model 包后,就可以直接创建 Student 结构体的变量(实例)。但是问题来了,如果首字母是小写的, 比如 是 type student struct {....} 就不不行了,怎么办---> 工厂模式来解决.
     
    工厂模式来解决问题
      使用工厂模式实现跨包创建结构体实例(变量)的案例:
      如果 model 包的 结构体变量首字母大写,引入后,直接使用, 没有问题
         

      如果 model 包的 结构体变量首字母小写,引入后,不能直接使用, 可以工厂模式解决, 看老师演示, 代码:

      student.go

       

       main.go

       

      思考题
        同学们思考一下,如果 model 包的 student 的结构体的字段 Score 改成 score,我们还能正常访问吗?又应该如何解决这个问题呢?[老师给出思路,学员自己完成]
        解决方法如下:

         

  • 相关阅读:
    匹配下拉控件
    验证视图状态 MAC 失败
    打开网页要输入用户名和密码的解决方案!
    ASP.NET网站安装部署参考总结!
    IOS开发中常量的处理
    typedef与define的区别
    OC的单例模式
    js for循环中传入动态参数
    javascript array map方法
    javascript 得到兄弟节点的方法,jquery妙用
  • 原文地址:https://www.cnblogs.com/Essaycode/p/12650474.html
Copyright © 2011-2022 走看看