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

网站开发 常德搜狗提交网站入口

网站开发 常德,搜狗提交网站入口,杭州网站建设提供商,企业内网搭建要多少钱文章目录 前言代码结果总结 前言 本文章尝试使用go实现“原型”。 代码 package mainimport (fmt )// 不同原型标志枚举 type Type intconst (PROTOTYPE_1 Type iotaPROTOTYPE_2 )// 原型接口 type IPrototype interface {Clone() IPrototypeMethod(value int)P… 文章目录 前言代码结果总结 前言 本文章尝试使用go实现“原型”。 代码 package mainimport (fmt )// 不同原型标志枚举 type Type intconst (PROTOTYPE_1 Type iotaPROTOTYPE_2 )// 原型接口 type IPrototype interface {Clone() IPrototypeMethod(value int)Print() }// 具体原型1 type ConcretePrototype1 struct {name stringvalue int }// 构造函数 func NewConcretePrototype1ByFields(name string, value int) *ConcretePrototype1 {return ConcretePrototype1{name,value,} }func NewConcretePrototype1ByObject(cp *ConcretePrototype1) *ConcretePrototype1 {return ConcretePrototype1{name: cp.name,value: cp.value,} }// 接口方法 func (cp *ConcretePrototype1) Clone() IPrototype {return NewConcretePrototype1ByObject(cp) }func (cp *ConcretePrototype1) Method(value int) {cp.value value }func (cp *ConcretePrototype1) Print() {fmt.Println(Call Method1 from , cp.name, with field : , cp.value) }// 具体原型2 type ConcretePrototype2 struct {name stringvalue int }// 构造函数 func NewConcretePrototype2ByFields(name string, value int) *ConcretePrototype2 {return ConcretePrototype2{name,value,} }func NewConcretePrototype2ByObject(cp *ConcretePrototype2) *ConcretePrototype2 {return ConcretePrototype2{name: cp.name,value: cp.value,} }// 接口方法 func (cp *ConcretePrototype2) Clone() IPrototype {return NewConcretePrototype2ByObject(cp) }func (cp *ConcretePrototype2) Method(value int) {cp.value value }func (cp *ConcretePrototype2) Print() {fmt.Println(Call Method2 from , cp.name, with field : , cp.value) }// 原型工厂 type PrototypeFactory struct {prototypes map[Type]IPrototype }func NewPrototypeFactory() *PrototypeFactory {return PrototypeFactory{prototypes: map[Type]IPrototype{PROTOTYPE_1: NewConcretePrototype1ByFields(PROTOTYPE_1 , 1),PROTOTYPE_2: NewConcretePrototype2ByFields(PROTOTYPE_2 , 2),},} }func (p *PrototypeFactory) CreatePrototype(t Type) IPrototype {return p.prototypes[t].Clone() }// 客户端代码 func clientCode(p *PrototypeFactory) {fmt.Println(Lets create a Prototype 1)prototype1 : p.CreatePrototype(PROTOTYPE_1)prototype2 : p.CreatePrototype(PROTOTYPE_1)prototype1.Method(3)prototype2.Method(4)prototype1.Print()prototype2.Print()fmt.Println()fmt.Println(Lets create a Prototype 2)prototype1 p.CreatePrototype(PROTOTYPE_2)prototype2 p.CreatePrototype(PROTOTYPE_2)prototype1.Method(5)prototype2.Method(6)prototype1.Print()prototype2.Print() }func main() {clientCode(NewPrototypeFactory()) }结果 Lets create a Prototype 1 Call Method1 from PROTOTYPE_1 with field : 3 Call Method1 from PROTOTYPE_1 with field : 4Lets create a Prototype 2 Call Method2 from PROTOTYPE_2 with field : 5 Call Method2 from PROTOTYPE_2 with field : 6总结 新人设计模式理解望大家多多指点。
http://www.w-s-a.com/news/313265/

相关文章:

  • 响应式网站 价格网站用哪些系统做的比较好用
  • 高端网站案例360做的网站
  • 瑞安地区建设网站公众号开发者工具是干嘛的
  • 请解释网站开发的主要流程.wordpress主体上传
  • 网站方案组成要素饰品公司网站建设方案
  • 网站改版被降权赣州景文网络科技有限公司
  • 吉林省网站建设推广图片模版
  • 如何做网站热力图佛山 网站关键词优化
  • 个人网站建设论文中期报告申报网站建设理由 模板
  • 岫岩做网站软件开发和app开发的区别
  • 邯郸质量一站式服务平台上线如何做国外销售网站
  • 内蒙古工程建设协会网站sem优化策略
  • Linux网站建设总结建设电子商务平台
  • 公司网站背景图片课程网站如何建设
  • 用js做简单的网站页面互联网技术对人力资源管理的影响有哪些
  • 银川做网站贵德县wap网站建设公司
  • 深圳网站建设zvge山西省煤炭基本建设局网站
  • 佛山网页网站设计线上怎么做推广和宣传
  • 多个域名绑定同一个网站案例
  • 建设网站都需要准备什么代理加盟微信网站建设
  • 网站备案没有了wordpress 添加按钮
  • 湖南建设银行宣传部网站福田蒙派克空调滤芯安装位置图
  • wap网站搜索wordpress工作室模板
  • 青岛金融网站建设如何提交网站地图
  • 制作简单门户网站步骤网站建设论文的摘要
  • 可以直接进入网站的正能量照片学做静态网站
  • 织梦做社交网站合适吗网站的市场如何制作
  • 阳曲网站建设价格多少四川佳和建设工程网站
  • 免费注册店铺位置sem seo什么意思
  • 建筑网站搜图电子商务网站建设渠道