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

网站建设iis配置外贸网站 建站

网站建设iis配置,外贸网站 建站,网站建设 网站,微信小程序低代码开发Go和Java实现装饰器模式 我们通过人穿着打扮自己的实例来演示装饰器模式的用法。 1、装饰器模式 装饰器模式允许向一个现有的对象添加新的功能#xff0c;同时又不改变其结构。这种类型的设计模式属于结构型模式#xff0c;它 是作为现有的类的一个包装。 装饰器模式通过…Go和Java实现装饰器模式 我们通过人穿着打扮自己的实例来演示装饰器模式的用法。 1、装饰器模式 装饰器模式允许向一个现有的对象添加新的功能同时又不改变其结构。这种类型的设计模式属于结构型模式它 是作为现有的类的一个包装。 装饰器模式通过将对象包装在装饰器类中以便动态地修改其行为。 这种模式创建了一个装饰类用来包装原有的类并在保持类方法签名完整性的前提下提供了额外的功能。 意图动态地给一个对象添加一些额外的职责。就增加功能来说装饰器模式相比生成子类更为灵活。 主要解决一般的我们为了扩展一个类经常使用继承方式实现由于继承为类引入静态特征并且随着扩展 功能的增多子类会很膨胀。 何时使用在不想增加很多子类的情况下扩展类。 如何解决将具体功能职责划分同时继承装饰者模式。 关键代码1、Component 类充当抽象角色不应该具体实现。 2、修饰类引用和继承 Component 类具 体扩展类重写父类方法。 应用实例1、孙悟空有 72 变当他变成庙宇后他的根本还是一只猴子但是他又有了庙宇的功能。 2、 不论一幅画有没有画框都可以挂在墙上但是通常都是有画框的并且实际上是画框被挂在墙上。在挂在墙上 之前画可以被蒙上玻璃装到框子里这时画、玻璃和画框形成了一个物体。 优点装饰类和被装饰类可以独立发展不会相互耦合装饰模式是继承的一个替代模式装饰模式可以动态 扩展一个实现类的功能。 缺点多层装饰比较复杂。 使用场景1、扩展一个类的功能。 2、动态增加功能动态撤销。 注意事项可代替继承。 装饰器模式包含以下几个核心角色 抽象组件Component定义了原始对象和装饰器对象的公共接口或抽象类可以是具体组件类的父类或 接口。 具体组件Concrete Component是被装饰的原始对象它定义了需要添加新功能的对象。 抽象装饰器Decorator继承自抽象组件它包含了一个抽象组件对象并定义了与抽象组件相同的接 口同时可以通过组合方式持有其他装饰器对象。 具体装饰器Concrete Decorator实现了抽象装饰器的接口负责向抽象组件添加新的功能。具体装饰 器通常会在调用原始对象的方法之前或之后执行自己的操作。 适用性 在不影响其他对象的情况下以动态、透明的方式给单个对象添加职责。 处理那些可以撤消的职责。 当不能采用生成子类的方法进行扩充时。 装饰器模式通过嵌套包装多个装饰器对象可以实现多层次的功能增强。每个具体装饰器类都可以选择性地增加新 的功能同时保持对象接口的一致性。 2、Go实现装饰器模式 package decorator// Person type Person interface {// 形象展示Show() }package decoratorimport fmt// 服饰类 type Finery struct { }func (finery *Finery) Show() {fmt.Println(穿着了如下衣服:) }package decorator// FineryDecorator type FineryDecorator interface {Decorate(Person) }package decoratorimport fmt// Tshirt type Tshirt struct {person Person }func (tshirt *Tshirt) Decorate(person Person) {tshirt.person person }func (tshirt *Tshirt) Show() {tshirt.person.Show()fmt.Println(大T恤) }package decoratorimport fmt// Trouser type Trouser struct {person Person }func (trouser *Trouser) Decorate(person Person) {trouser.person person }func (trouser *Trouser) Show() {trouser.person.Show()fmt.Println(阔腿裤) }package decoratorimport fmt// Shoe type Shoe struct {person Person }func (shoe *Shoe) Decorate(person Person) {shoe.person person }func (shoe *Shoe) Show() {shoe.person.Show()fmt.Println(运动鞋) }package mainimport . proj/decoratorfunc main() {person : Finery{}tshirt : Tshirt{}trouser : Trouser{}shoe : Shoe{}tshirt.Decorate(person)trouser.Decorate(tshirt)shoe.Decorate(trouser)shoe.Show() } # 输出 穿着了如下衣服: 大T恤 阔腿裤 运动鞋3、Java实现装饰器模式 package com.decorator;// Person public interface Person {// 形象展示void show(); }package com.decorator;// 服饰类 public class Finery implements Person{Overridepublic void show() {System.out.println(穿着了如下衣服:);} }package com.decorator;// FineryDecorator public class FineryDecorator implements Person{protected Person person;public void decorator(Person person){this.person person;}Overridepublic void show() {this.person.show();} }package com.decorator;// Tshirt public class Tshirt extends FineryDecorator{Overridepublic void show() {super.show();System.out.println(大T恤);} }package com.decorator;// Trouser public class Trouser extends FineryDecorator {Overridepublic void show() {super.show();System.out.println(阔腿裤);}}package com.decorator;// Shoe public class Shoe extends FineryDecorator{Overridepublic void show() {super.show();System.out.println(运动鞋);} }package com.decorator;public class Test {public static void main(String[] args) {Person person new Finery();FineryDecorator fineryDecorator new FineryDecorator();Tshirt tshirt new Tshirt();Trouser trouser new Trouser();Shoe shoe new Shoe();fineryDecorator.decorator(person);tshirt.decorator(fineryDecorator);trouser.decorator(tshirt);shoe.decorator(trouser);shoe.show();} }# 输出 穿着了如下衣服: 大T恤 阔腿裤 运动鞋
http://www.dnsts.com.cn/news/233895.html

相关文章:

  • 网站图片像素营销推广活动策划方案大全
  • 电影网站怎么做推广《营销型网站建设实战》
  • 一个空间能放几个网站网站管理后台登录地址
  • 网站怎么在成都备案前端招聘网站
  • 沈阳网站优化公司小说盗版网站怎么做的
  • 手把手教你做网站视频2022百度seo优化工具
  • 怎么降低网站的跳出率徐州有名的设计公司
  • 免费单页网站建设无锡企业建站模板
  • 一家专门做原产地的网站空间设计师
  • 工程资料类网站怎么做台州网站制作开发
  • 北京网站建设天下公司wordpress 用户验证
  • 互联网公司 网站wordpress中文用户名
  • 黄页 网站模板手机营销型网站制作
  • 网站会员系统怎么做模版做新网站不换域名
  • 浦东网站备案流程建设电子商城网站
  • 相城专业的网站建设wordpress微博分享
  • 紫金网站建设价格广州注册公司程序
  • 工信部查网站备案网站搭建技术都有啥
  • 做推手需要开网站吗东莞做网站 南城石佳
  • 专业提供网站建设服务公司数据处理网站开发
  • 如何利用php开源系统建立php网站wordpress博客主机选择
  • 什么是营销型网站?淘宝开店后怎么运营
  • 网站的设计特点有哪些网站找不到首页
  • 南阳响应式网站制作平台app开发制作
  • 越秀网站建设推广设计公司网站套餐
  • 10号店分销平台谷歌seo需要做什么的
  • 百度站长平台怎么用网站错误提示页设计
  • 太仓市质监站网址重庆网站网络推广
  • 产品展示网站模板源码百度指数 多少流量 网站名
  • 互联网门户网站外包做网站的会给你什么