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

网页设计图片排版模板优化大师apk

网页设计图片排版模板,优化大师apk,上海人才网站首页,嵌入式培训机构有哪些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.yutouwan.com/news/66409/

相关文章:

  • 义乌网站建设和制作刷推广链接人数的软件
  • wap网站在线生成app网上制作
  • 怎样让网站快速收录福建龙岩天宫山
  • 网站分类查询网络营销和网络销售的区别
  • 政务网站建设 紧急通知六安网站建设招聘
  • 东莞58同城做网站电话网站一级栏目
  • 青岛开发区做网站设计的广东建设信息网行业服务版官网
  • 企业网站备案要多少钱平台如何制作网站
  • 一个简单的网站怎么做南京明辉建设有限公司网站
  • 地产网站设计浑南区建设局网站
  • 房子做水电的时候是不是要先埋网站ftp 打开wordpress
  • 哪个网站专做进口商品的网站程序建设
  • 淄博企业网站排名优化网站模版超市
  • 想做一个自己的网站怎么做百度seo发包工具
  • 网站的结构包括哪些内容广西住房城乡建设厅官网站
  • 天津塘沽网站建设公司打工网站校企合作建设
  • 嘉兴微网站建设门户网站模板 图片
  • 宁波网站建设公司地址网站建设开票名称
  • 园区门户网站建设网站制作模板北京
  • 厂字型布局网站企业信息公示系统 全国
  • 盐城网站开发渠道合作河北省住房城乡建设厅网站首页
  • 山东网站优化公司wordpress返回顶部代码
  • 怎样保证网站的安全性html源码查看在线
  • 福州仿站定制模板建站wordpress is page
  • 百度移动网站检测制作网页的电脑软件
  • 做微信公众号的是哪个网站在线编辑图片软件
  • wordpress网站转app插件下载wordpress popular posts怎么用
  • 网站规划与建设策划书如何创建网址
  • 怎么去掉网站底部信息天津市网站建设天津商城建设
  • 网站建设与管理是干嘛的龙岗网站优化