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

环保设备网站怎么做免费crm系统下载

环保设备网站怎么做,免费crm系统下载,阿里云 ip 网站,wordpress设置导航高度目录 装饰器模式#xff08;Decorator Pattern#xff09; 装饰器模式的核心角色#xff1a; 优缺点 使用场景 代码实现 装饰器模式#xff08;Decorator Pattern#xff09; 装饰器模式#xff08;Decorator Pattern#xff09;允许向一个现有的对象添加新的功…目录 装饰器模式Decorator Pattern   装饰器模式的核心角色 优缺点 使用场景 代码实现 装饰器模式Decorator Pattern   装饰器模式Decorator Pattern允许向一个现有的对象添加新的功能同时又不改变其结构。这种类型的设计模式属于结构型模式它是作为现有的类的一个包装。装饰器模式通过将对象包装在装饰器类中以便动态地修改其行为。这种模式创建了一个装饰类用来包装原有的类并在保持类方法签名完整性的前提下提供了额外的功能。 装饰器模式的核心角色 抽象组件Component定义了对象的接口可以是一个抽象类或接口。 具体组件ConcreteComponent实现了抽象组件的接口是被装饰的对象。 装饰器Decorator维持一个指向抽象组件对象的引用并实现了抽象组件的接口。 具体装饰器ConcreteDecorator具体的装饰器对象用于扩展具体组件的功能。 优缺点 1优点 装饰类和被装饰类可以独立发展不会相互耦合装饰模式是继承的一个替代模式装饰模式可以动态扩展一个实现类的功能。 2缺点多层装饰比较复杂。 使用场景 扩展一个类的功能。动态增加功能动态撤销。 代码实现 package mainimport (fmt )// 抽象组件咖啡接口 type Coffee interface {GetDescription() stringGetCost() float64 }// 具体组件原味咖啡 type PlainCoffee struct{}func (c *PlainCoffee) GetDescription() string {return Plain Coffee }func (c *PlainCoffee) GetCost() float64 {return 1.0 }// 装饰器配料装饰器 type IngredientDecorator struct {coffee CoffeeextraCost float64extraDesc string }func (d *IngredientDecorator) GetDescription() string {return d.coffee.GetDescription() , d.extraDesc }func (d *IngredientDecorator) GetCost() float64 {return d.coffee.GetCost() d.extraCost }// 具体装饰器牛奶装饰器 type MilkDecorator struct {IngredientDecorator }func NewMilkDecorator(coffee Coffee) *MilkDecorator {return MilkDecorator{IngredientDecorator{coffee: coffee,extraCost: 0.5,extraDesc: Milk,},} }// 具体装饰器糖浆装饰器 type SyrupDecorator struct {IngredientDecorator }func NewSyrupDecorator(coffee Coffee) *SyrupDecorator {return SyrupDecorator{IngredientDecorator{coffee: coffee,extraCost: 0.3,extraDesc: Syrup,},} }func main() {coffee : PlainCoffee{}fmt.Println(Coffee:, coffee.GetDescription(), Cost:, coffee.GetCost())coffeeWithMilk : NewMilkDecorator(coffee)fmt.Println(Coffee with Milk:, coffeeWithMilk.GetDescription(), Cost:, coffeeWithMilk.GetCost())coffeeWithMilkAndSyrup : NewSyrupDecorator(coffeeWithMilk)fmt.Println(Coffee with Milk and Syrup:, coffeeWithMilkAndSyrup.GetDescription(), Cost:, coffeeWithMilkAndSyrup.GetCost()) }
http://www.hkea.cn/news/14555122/

相关文章:

  • 做淘客网站 备案貴阳建设银行网站
  • 没签合同网站做不好湘潭企业网站建设 磐石网络
  • 运城做网站价格html网页设计用什么软件
  • 广州企业模板建站wordpress 内网搭建
  • 企业网站建设和实现 论文怎么做家政的网站
  • 北京城乡建设和住房门户网站广西城乡建设厅官网
  • 昆山网站建设培训学校个人网站建设 开题报告
  • 网站宣传营销网上设计网站
  • 网站开发怎么做账深圳网站建设设
  • 前几年做那些网站致富制作xml网站地图文件
  • 做高效能的父母网站wordpress实用插件
  • 深圳app网站建设哪家好一台电脑赚钱的门路
  • 网站开发 国际网站域名查询app
  • win7 asp网站无法显示该页面电子商务网站建设市场
  • 重庆黄页网站网站的建设费用预算
  • 我注册过的网站杭州建筑市场信用网
  • 北京网站设计实力乐云践新六安人论坛百姓杂谈
  • 手机如何建立网站平台网站托管一年多少钱
  • 简述网站的建设步骤海宁网站怎么做seo
  • 网站和微信同步建设建设学校网站前的需求分析报告
  • 什么是商城网站建设wordpress多级tree分类目录
  • 手机制作封面教程网站没网站怎么做二维码扫描连接
  • php做网站安全山西发布紧急通知
  • 网站建设用什么系统好cms框架 wordpress
  • 上海网站建设褐公洲司学校网站怎么查询录取
  • 中国建设银行江西分行网站首页国外有名的网站
  • 网站地图怎么提交五矿瑞和上海建设有限公司网站
  • 郑州做网站优化建设网站书籍pdf
  • 网站建设总体情况的wordpress主题
  • 哪里网站建设好服务器和域名有免费申请