当前位置: 首页 > news >正文

网站线框图怎么做福田网站建设方案服务

网站线框图怎么做,福田网站建设方案服务,济南城市建设集团 网站,app与网站的关系目录 工厂方法模式#xff08;Factory Method Pattern#xff09; 工厂模式的核心角色 优缺点 代码实现 工厂方法模式#xff08;Factory Method Pattern#xff09; 工厂方法模式#xff08;Factory Method Pattern#xff09;又叫作多态性工厂模式#xff0c;指的…目录 工厂方法模式Factory Method Pattern 工厂模式的核心角色 优缺点 代码实现 工厂方法模式Factory Method Pattern 工厂方法模式Factory Method Pattern又叫作多态性工厂模式指的是定义一个创建对象的接口但由实现这个接口的工厂类来决定实例化哪个产品类工厂方法把类的实例化推迟到子类中进行。在工厂方法模式中不再由单一的工厂类生产产品而是由工厂类的子类实现具体产品的创建。因此当增加一个产品时只需增加一个相应的工厂类的子类, 以解决简单工厂生产太多产品时导致其内部代码臃肿switch … case分支过多的问题。(注意Go中没有继承所以这里说的工厂子类其实是直接实现工厂接口的具体工厂类。) 工厂方法模式在Go语言中有着广泛的应用例如在数据库访问、消息队列、日志记录等方面都可以使用工厂方法模式来创建对象实例以实现更加灵活和可扩展的代码。 工厂模式的核心角色 1、抽象产品Abstract Product定义了产品的共同接口或抽象类。它可以是具体产品类的父类或接口规定了产品对象的共同方法。 2、具体产品Concrete Product实现了抽象产品接口定义了具体产品的特定行为和属性。 3、抽象工厂Abstract Factory声明了创建产品的抽象方法可以是接口或抽象类。它可以有多个方法用于创建不同类型的产品。 4、具体工厂Concrete Factory实现了抽象工厂接口负责实际创建具体产品的对象。 优缺点 1优点 灵活性增强对于新产品的创建只需多写一个相应的工厂类。 典型的解耦框架。高层模块只需要知道产品的抽象类无须关心其他实现类满足迪米特法则、依赖倒置原则和里氏替换原则。 2缺点 类的个数容易过多增加复杂度。 增加了系统的抽象性和理解难度。 只能生产一种产品此弊端可使用抽象工厂模式解决。 代码实现 package mainimport fmt// (抽象产品)MathOperator 实际产品实现的接口--表示数学运算器应该有哪些行为 type MathOperator interface {SetOperandA(int)SetOperandB(int)ComputerResult() int }// 具体产品PlusOperator 实际的产品类--加法运算器 type PlusOperator struct {operandA intoperandB int }func (po *PlusOperator) SetOperandA(operand int) {po.operandA operand } func (po *PlusOperator) SetOperandB(operand int) {po.operandB operand } func (po *PlusOperator) ComputerResult() int {return po.operandA po.operandB }// (具体产品)MultiOperator 实际的产品类--乘法运算器 type MultiOperator struct {operandA intoperandB int } func (mo *MultiOperator) SetOperandA(operand int) {mo.operandA operand } func (mo *MultiOperator) SetOperandB(operand int) {mo.operandB operand } func (mo *MultiOperator) ComputerResult() int {return mo.operandA * mo.operandB }// 抽象工厂OperatorFactory 工厂接口由具体工厂类来实现 type OperatorFactory interface {Create() MathOperator }// 假定程序可以生产两类计算器加法计算器和乘法计算器也就是在工厂方法模式中存在两个子类工厂。 // 具体工厂PlusOperatorFactory 是 PlusOperator 加法运算器的工厂类 type PlusOperatorFactory struct { }func (pof *PlusOperatorFactory) Create() MathOperator {return PlusOperator{operandA: 1,operandB: 2,} }// (具体工厂)MultiOperatorFactory 是乘法运算器产品的工厂 type MultiOperatorFactory struct { }func (mof *MultiOperatorFactory) Create() MathOperator {return MultiOperator{operandA: 1,operandB: 2,} }func main() {// 使用工厂方法模式时客户端代码只需要调用工厂接口的方法而无需关心具体的产品对象是如何创建的。factory : PlusOperatorFactory{}plus : factory.Create()plus.SetOperandA(2)plus.SetOperandB(3)fmt.Printf(%v\n, plus.ComputerResult())factorym : MultiOperatorFactory{}multi : factorym.Create()multi.SetOperandA(1)multi.SetOperandB(3)fmt.Printf(%v\n, multi.ComputerResult()) }
http://www.pierceye.com/news/372736/

相关文章:

  • 湖北网站定制开发价格表宣传片制作协议
  • 开网站要多少钱自己怎样做网站
  • 建设网站的教程免费的wordpress分类在哪设置
  • 电子书网站 跟我学做家常菜800网站建设与维护 教学大纲
  • 河南省住房城乡建设主管部门网站wordpress还有人在用吗
  • 好口碑关键词优化沈阳企业关键词优化
  • 外汇自动跟单网站开发wordpress支持中文
  • 南宁网站建设推广教育类网站框架
  • 定制网站建设服务公司摄影设计师招聘
  • 地图 添加到网站观点网站
  • 给分管领导网站建设情况汇报怎么写企业网站的发展历史
  • 佛山营销网站建设费用app制作器下载软件
  • 如何将优酷视频上传到自己网站万能网
  • 域名销售网站wordpress 数据库配置文件
  • 广州营销型网站建设怎么样做网站必须要认证吗
  • 网站开发主要内容免费商城平台
  • 青岛建站方案海兴县网站建设公司
  • 网站文案框架兰州网页制作公司网站
  • 专业网站有哪些平台wordpress那个版本
  • 网站建设按钮详情页设计图
  • 杭州公司注册代理中介深圳关键词优化软件
  • 乐清网站制作公司电话免费做初中试卷的网站
  • 注册一个网站的流程反向代理服务器做wordpress外网
  • 沁阳网站建设tomcat建网站
  • 品牌网站建设公司推荐网站建设公司3lue
  • 装修公司网站模版徐州品牌网站建设
  • 医疗网站建设计划书一级消防工程师考试科目
  • 信誉好的网站建设公司网站关停公告怎么做
  • 画图在什么网站上做兼职广告词
  • 昆明购物网站建设企业网络设计方案预算