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

网站建设在马来西亚高中生做网站

网站建设在马来西亚,高中生做网站,网页源代码大全,建设部网站被黑文章目录 1. 概念1.1 角色1.2 应用场景1.2 类图 2. 代码示例2.1 设计2.2 代码2.3 示例类图 1. 概念 定义一个适配器,帮助原本不能实现接口的类“实现”该接口 1.1 角色 目标(Target):客户端调用的目标接口 被适配者&#xff08…

文章目录

  • 1. 概念
    • 1.1 角色
    • 1.2 应用场景
    • 1.2 类图
  • 2. 代码示例
    • 2.1 设计
    • 2.2 代码
    • 2.3 示例类图

1. 概念

定义一个适配器,帮助原本不能实现接口的类“实现”该接口

1.1 角色

目标(Target):客户端调用的目标接口
被适配者(Adaptee):已经存在且运行良好的类或对象,但它不能实现Taget接口。
适配器(Adapter):继承或管理被适配者,且可以实现目标接口。

1.2 应用场景

  • 背景
    • 已经有一个目标接口供客户端调用
    • 根据需求新增一个类(该类不能实现目标接口)
    • 修改目标接口开销会很大
  • 解决方法
    • 我们新增一个类——适配器
    • 适配器继承新增类,且可以实现目标接口
  • 结果
    • 客户端用适配器处理新增类的实例,得到的实例可以实现目标接口。

1.2 类图

«interface»
Target
+Service()
Class
+Service()
Adapter
+*Adaptee:Adaptee
+Service()
Adaptee
+AnotherService()
Client

2. 代码示例

2.1 设计

  • 背景
    • client通过Bird接口可以获取鸟类实例的信息
    • 有一个Cat类,不能实现Bird接口
    • 但是需要client调用Bird接口来获取Cat实例的信息
  • 解决
    • 创建一个适配器CatAdapter
      • 它继承Cat类
      • 且实现Bird接口

2.2 代码

package mainimport "fmt"
//之前有一个Bird接口,他可以Get鸟类的信息
type Bird interface {Get()
}//比如这个鹦鹉类,实现了Bird接口
type Parrot struct {Name    stringFeather string
}func (parrot *Parrot) Get() {fmt.Printf("鹦鹉%q的颜色是:%q\n", parrot.Name, parrot.Feather)
}//业务需求,多了一个猫的类
type Cat struct {Name stringFur  string
}
//它只有Show方法,不能实现Bird接口
func (cat *Cat) Show() {fmt.Printf("猫咪%q的颜色是:%q\n", cat.Name, cat.Fur)
}//我们创建一个猫的解释器,他继承了猫类,同时又可以实现Bird接口
type CatAdapter struct {Cat *Cat
}func (catAdapter *CatAdapter) Get() {catAdapter.Cat.Show()
}//有一个客户端
type Client struct {
}
//它可以直接获取bird信息
func (client Client) GetBird(bird Bird) {bird.Get()
}func main() {//实例化一个叫polly的鹦鹉polly := &Parrot{Name:    "polly",Feather: "green",}//示例话一个叫tom的猫tom := &Cat{Name: "tom",Fur:  "black",}client := Client{}//客户端可以直接使用pollyclient.GetBird(polly)//客户端可以通过解释器使用tomtomAdapter := &CatAdapter{Cat: tom}client.GetBird(tomAdapter)
}

2.3 示例类图

«interface»
Bird
+Get()
Parrot
+String:Name
+String:Feather
CatAdapter
+*Cat:Cat
+Get()
Cat
+String:Name
+String:Fur
+Show()
Client
GetBird(bird Bird)

在这里插入图片描述

http://www.yayakq.cn/news/327318/

相关文章:

  • asp.net 制作网站开发网站空间备案
  • 网站开发详细流程网站项目流程表
  • wordpress淘宝评论调用插件长尾词seo排名
  • 家政网站建设厦门无忧网站建设有限公司
  • 网站建设文本居中代码wordpress html5视频播放插件
  • 网站建设品牌有哪些宁波网站推广优化公司
  • 工程公司安全考试东营网站seo外包
  • 自己做网站外包河北石家庄最新新闻
  • 湘潭网站建设公司有哪些为什么要建设o2o网站
  • 木渎建设局网站wordpress 下载类主题
  • seo网站优化培训找哪些丹徒网站
  • 网站首页制作实验报告网站建设一百互联
  • 织梦做的网站网速打开慢是怎么回事速加网零件加工网
  • 哪家专门做特卖的网站淘宝做网站的店
  • 天津宁河区建设网站wordpress萌主题下载地址
  • 如何制作简单网站制作app用什么软件好
  • 昭通昭阳区城乡建设管理局网站中龙建电力建设股份有限公司网站
  • 加强网站基础建设大良网站设计
  • seo网站优化推广怎么样263企业邮箱登录入口手机版
  • 自贡制作网站手机网站开发怎么样
  • 做影视网站需要境外做网站都需要会什么软件
  • 网站备案许可证号查询做网站实例教程
  • 免费网站开发合同范本无锡知名网站
  • 网站开发与数据库ppt画册专业设计公司
  • 外链网站大全重庆高端品牌网站建设
  • pc网站建设的优势是什么软件培训学校
  • 找工作网站哪个比较好网页生成图片
  • 网站开发的价钱wordpress tag 中文
  • 网站开发人员岗位描述石家庄网站优化排名推广
  • 教育做的比较好的网站有哪些wordpress 中文设置