<4> go 工厂

原创 2015年11月19日 19:56:57

直接上代码


import (
    "errors"
    "fmt"
    "strings"
)

type Servers []Server

type Server struct {
    Name string
}

func ListServer() Servers {
    return []Server{
        {Name: "app1"},
        {Name: "app2"},
        {Name: "app3"},
        {Name: "app4"},
    }
}

func (servers Servers) Filter(name string) (Server, error) {
    for _, server := range servers {
        if strings.Contains(name, server.Name) {
            return server, nil
        }
    }
    return Server{}, errors.New("Not found that server")
}

func main() {
    fmt.Println("Start Main func()")
    // 创建工厂
    servers := ListServer()
    // 挑选服务
    if server, err := servers.Filter("app1"); err == nil {
        fmt.Println("This server is working=>", server.Name)
    } else {
        fmt.Println("This server is error=>", server.Name)
    }
}
// 输入出This server is working=>app1

go语言快速入门:简单工厂模式的实现(23)

常见的23种创建模式分为创建型/结构型/行为型三种,而在这其中,Singleton和Factory应该是创建型中非常简单的模式了。在本文中,将或用interface的功能讨论一下如何使用更好的使用go...
  • liumiaocn
  • liumiaocn
  • 2017年02月16日 21:57
  • 878

go语言实现设计模式(二):简易工厂

简易工厂主要是用来解决对象“创建”的问题。以下的例子取自《大话设计模式》中第一章,实现一个可扩展的“计算器”。当增加新的功能时,并不需改动原来已经实现的算法。由于是简易工厂,所以我们还是需要对工厂类进...
  • yzh900927
  • yzh900927
  • 2015年11月01日 10:29
  • 835

【智能制造】工业4.0——从智慧工厂到智能生产

工业物联网的应用:工业4.0是如何帮助博世力士乐改进生产线的 万物云联网  图1、工业革命的不断演进 博世力士乐(Bosch Rexroth)利用工业4.0来实现零故障战略; 博世力士乐(...
  • np4rHI455vg29y2
  • np4rHI455vg29y2
  • 2017年11月07日 00:00
  • 1818

使用Go语言+goproxy库编写的http代理服务器+图片cache保存脚本 第一版完成

使用Go语言+goproxy库编写的http代理服务器+图片cache保存 第一版完成 用法: 1、安装Go 1.5.x 2、命令行设置环境变量GOSRC(Windows下设置到“我的电脑”...
  • cteng
  • cteng
  • 2016年01月14日 13:03
  • 2409

深入Go语言 - 4

本文介绍Go的声明和作用域。 声明用于常量、变量、类型、函数、标签和包。 每个非空标识符(identifier)必须声明。同一代码块中标识符只能声明一次。标识符不能同时声明在文件代码块和包...
  • iamjz
  • iamjz
  • 2016年06月20日 18:38
  • 275

工厂模式(工厂模式4)

工厂模式:工厂模式 提示:在实际工作中更偏向使用简单工厂模式, 相对于简单工厂模式,我们要再建一个工厂接口,对于其他要实现的的类都实现这个接口, 创建一个实现类的工厂(public class ...
  • wuxintdrh
  • wuxintdrh
  • 2016年07月12日 18:17
  • 87

go学习笔记(4)

今晚继续练习一下基础,原本计划看websocket通信基础,趁基础还没打好,还是乖乖从基础开始。今晚开始尝试一下数据转换。js数据转换或者做链接会经常有。数据转换也是经常发生的事情。但是奇怪会发现一点...
  • hero82748274
  • hero82748274
  • 2018年01月09日 23:04
  • 52

JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式)

在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。但是在一些情况下, new操作符直接生成对象会带来一些问题。举例来说, 许多类型对象的创造需要一...
  • jason0539
  • jason0539
  • 2014年04月07日 17:36
  • 222817

关于工厂模式的作用。为什么要用工厂模式?

关于工厂模式的作用。为什么要用工厂模式?
  • kocscs123
  • kocscs123
  • 2016年11月20日 19:56
  • 763

三种工厂模式区别总结

工厂模式分为三种:简单工厂、工厂模式和抽象工厂模式。三者之间存在哪些异同呢?先分别看看各个模式的特点 一、     简单工厂模式: 实现了算法和界面的分离,也就是将业务逻辑和界面逻辑分开了,降低了耦...
  • lingfengtengfei
  • lingfengtengfei
  • 2013年10月07日 10:40
  • 28873
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:<4> go 工厂
举报原因:
原因补充:

(最多只允许输入30个字)