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

长沙点梦网站建设公司怎么样百度app下载安装官方免费下载

长沙点梦网站建设公司怎么样,百度app下载安装官方免费下载,查询网站内页关键词排名,wordpress增加登陆注册文章目录 1. 概念1.1 角色1.2 类图 2. 代码示例2.1 设计2.1 代码2.2 类图 1. 概念 客户端调用桥接接口实现原有功能和扩展功能的组合 1.1 角色 Implementor(实施者): 具体实施者的抽象,可以是一个接口。 Concrete Implementor&…

文章目录

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

1. 概念

客户端调用桥接接口实现原有功能和扩展功能的组合

1.1 角色

  • Implementor(实施者):
    • 具体实施者的抽象,可以是一个接口。
  • Concrete Implementor(具体实施者):
    • 可以理解为扩展之前的原有功能
    • 桥接接口会在实现扩展功能的基础上调用它实现这些原有功能
  • Abstraction(抽象化):
    • 我们可以理解为桥接接口,它在提供扩展功能的同时也桥接了原有功能的接口
    • Refined Abstraction提供一个统一接口
    • 它关联了Implementor(或者进一步是Implementor的聚合)
  • Refined Abstraction(扩展抽象化):
    • 可以理解为它实现了具体的扩展功能,并实际调用了mplementor接口完成了原有功能

1.2 类图

«interface»
Implementor
+serviceImpl() : ReturnType
ConcreteImplementor
+serviceImpl() : ReturnType
+customService() : Type
«interface»
Abstraction
+Implementor:Implementor
+abstractService()
RefinedAbstraction
+extraService()
Client

2. 代码示例

2.1 设计

  • 定义一个实施者颜色
  • 定义三个具体实施者红色绿色黄色
    • 他们的use()方法来实现使用对应颜色
  • 定义一个抽象化类(桥接接口)笔刷
  • 定义两个扩展抽象化类粗笔刷细笔刷
    • 他们的画画方法
      • 实现扩展功能——用对应笔刷画画
      • 同时调用实施者接口,实现了对应的颜色功能
  • 定义一个工厂函数用来实例化一个具体的笔刷
  • 调用
    • 声明一个实施者
    • 实例化一个具体实施者
    • 用具体实施者实例化一个桥接
    • 调用桥接的方法实现原有功能和扩展功能的组合

2.1 代码

package mainimport "fmt"//定义实施者类
type Color interface {Use()
}//定义具体实施者A
type Red struct{}func (r Red) Use() {fmt.Println("Use Red color")
}
//定义具体实施者B
type Green struct{}func (g Green) Use() {fmt.Println("Use Green color")
}
//定义具体实施者C
type Yellow struct{}func (y Yellow) Use() {fmt.Println("Use Yellow color")
}// 定义抽象化类(或叫桥接接口)
type BrushPen interface {DrawPicture()
}// 定义扩展抽象化A
type BigBrushPen struct {Color
}//提供扩展功能,同时选择原功能执行
func (bbp BigBrushPen) DrawPicture() {fmt.Println("Draw picture with big brush pen")bbp.Use()
}// 定义扩展抽象化B
type SmallBrushPen struct {Color
}
//提供扩展功能,同时选择原功能执行
func (sbp SmallBrushPen) DrawPicture() {fmt.Println("Draw picture with small brush pen")sbp.Use()
}// 定义工厂方法生产具体的扩展抽象化(此处为了方便展示,和桥接模式无关)
func NewBrushPen(t string, color Color) BrushPen {switch t {case "BIG":return BigBrushPen{Color: color,}case "SMALL":return SmallBrushPen{Color: color,}default:return nil}
}func main() {//声明实施者var tColor Colorfmt.Println("========== 第一次测试 ==========")//定义为具体实施者tColor = Red{}//用具体实施者实例化一个抽象化tBrushPen := NewBrushPen("BIG", tColor)//用抽象化的画画功能完成扩展功能(粗细笔刷)和对应原功能(颜色)的组合操作tBrushPen.DrawPicture()fmt.Println("========== 第二次测试 ==========")tColor = Green{}tBrushPen = NewBrushPen("SMALL", tColor)tBrushPen.DrawPicture()fmt.Println("========== 第三次测试 ==========")tColor = Yellow{}tBrushPen = NewBrushPen("BIG", tColor)tBrushPen.DrawPicture()
}
  • 输出
========== 第一次测试 ==========
Draw picture with big brush pen  
Use Red color
========== 第二次测试 ========== 
Draw picture with small brush pen
Use Green color
========== 第三次测试 ========== 
Draw picture with big brush pen  
Use Yellow color

2.2 类图

«interface»
Color
+Use()
Red
+Use()
Green
+Use()
Yellow
+Use()
«interface»
BrushPen
+DrawPicture()
BigBrushPen
+Color
+DrawPicture()
SmallBrushPen
+Color
+DrawPicture()
Client
http://www.yayakq.cn/news/203358/

相关文章:

  • 网站的建设公司哪个好广州专业网页制作公司
  • 沭阳做网站Wordpress排版混乱
  • 曲阜网站制作湖北省网站建设
  • 西安市城乡建设管理局网站6运行时间 wordpress
  • 网站建设公司哪里找数字营销策略有哪些
  • 青岛市建设安全监督站网站行业网站建设公司推荐
  • 网站搜索引擎推广女生初中毕业最吃香的专业
  • 怎么给汽车网站做推广网站开发的感想
  • 怎样在公司的网站服务器上更新网站内容wordpress建站方法
  • 南宁网站公司做淘客网站
  • 旅行社网站开发网站建设客户合同范本
  • 58同城网站建设规划极智装
  • 网站建设与管理题库淘宝移动网站建设
  • 公司的网站费怎样做会计分录注册公司最少需要多少注册资金
  • 知乎 做网站的公司 中企动力wordpress单页模板
  • 宝塔软件怎么做网站2345浏览器官网首页
  • 国外做问卷赚购物券等的网站网站制作后续维护
  • 行业门户网站建设费用电子商务有限公司网站
  • 技术支持 如皋网站建设哪个网站做推广比较好
  • 建设网站的市场环境广州网站制作教程
  • 西部数码网站管理助手破解版农业生态园电商网站建设
  • 公司一定建设网站吗ps网页设计稿
  • 荆门网站开发有哪些厦门蓝典网站建设
  • 网站建设信息安全要求智慧工业园区建设方案
  • 网站制作器手机版下载做电影网站详细教程
  • 厦门同安建设局网站南宁网站建设速成培训
  • 什么网站详情页做的好郑州360房产网查询
  • 网站高级感网站备案好后
  • 做男性服装的网站qq网页版登录入口手机版
  • 做网站月薪资多少钱凡科快速建站