1."Person"类 (ConcreteComponent)


Public Class PersonPrivate myName As StringPublic Sub New()End SubPublic Sub New(ByVal name As String)myName = nameEnd SubPublic Overridable Sub Show()Console.WriteLine("装扮的{0}", myName)End Sub
End Class

2.服饰类( Decorator)

Public Class FineryInherits PersonProtected myComponent As Person'打扮,相当于构造函数Public Sub Decorate(ByVal component As Person)myComponent = componentEnd SubPublic Overrides Sub Show()If Not IsNothing(myComponent) ThenmyComponent.Show()End IfEnd SubEnd Class

3.具体服饰类( ConcreteDecorator)

Public Class BigTrouserInherits FineryPublic Overrides Sub Show()Console.Write("垮裤 ")MyBase.Show()End Sub
End ClassPublic Class sneakersInherits FineryPublic Overrides Sub Show()Console.Write("破球鞋 ")MyBase.Show()End Sub
End ClassPublic Class SuitInherits FineryPublic Overrides Sub Show()Console.Write("西装 ")MyBase.Show()End Sub
End ClassPublic Class TieInherits FineryPublic Overrides Sub Show()Console.Write("领带 ")MyBase.Show()End Sub
End ClassPublic Class TShirtsInherits FineryPublic Overrides Sub Show()Console.Write("大T恤 ")MyBase.Show()End Sub
End ClassPublic Class leathershoesInherits FineryPublic Overrides Sub Show()Console.Write("皮鞋 ")MyBase.Show()End Sub
End Class

4.客户端代码

Module Module1Sub Main()Dim xc As New Person("小菜")Console.WriteLine("第一种装扮:")Dim pqx As New sneakers '破球鞋Dim kk As New BigTrouser '大垮裤Dim dtx As New TShirts '大T恤pqx.Decorate(xc)kk.Decorate(pqx)dtx.Decorate(kk)dtx.Show()Console.Read()End SubEnd Module

003Visual Basic装饰模式相关推荐

  1. [导入]C#面向对象设计模式纵横谈(10):Decorator 装饰模式(结构型模式).zip(9.84 MB)...

    讲座内容: 本培训课程探讨GoF23之Decorator 装饰模式的意图.动因.原理.应用场景与C#语言实现,以及该模式在.NET框架程序设计中的具体应用. 课程讲师: 李建忠 上海祝成信息科技有限公 ...

  2. remote: HTTP Basic: Access denied

    github 提交项目 提示 remote: HTTP Basic: Access denied 这个一般就是自己更改github账号的密码引起的 处理方法1 进入控制面板-->用户账号--&g ...

  3. PAT (Basic Level) Practise (中文)-1025. 反转链表 (25)

    PAT (Basic Level) Practise (中文)-1025. 反转链表 (25)   http://www.patest.cn/contests/pat-b-practise/1025 ...

  4. 设计模式之装饰模式(Java实现)

    "怎么了,鱼哥?" "唉,别提了,网购了一件衣服,结果发现和商家描述的差太多了,有色差就算了,质量还不好,质量不好就算了,竟然大小也不行,说好的3个X,邮的却是一个X的, ...

  5. linux利用* vim提权,linux 通过suid vim.basic文件提权

    在kali上复现 先给需要的vim.basic文件设置suid权限 chmod u+s /usr/bin/vim.basic 先adduser test1一个普通权限用户 现在就是一个合适的提权环境 ...

  6. android get请求最长字符,Android OKHTTP3的GET和POST方法(带basic auth)

    使用前需要在Gradle Script中的build gradle中引入: compile 'com.squareup.okio:okio:1.13.0' compile 'com.squareup. ...

  7. PCLPCL/OpenNI tutorial 2: Cloud processing (basic)

    翻译自:http://robotica.unileon.es/index.php/PCL/OpenNI_tutorial_2:_Cloud_processing_(basic)#Feature_est ...

  8. 装饰模式(Decorator)

    1.概念 装饰模式动态地给一个对象添加一些额外的职责.就扩展功能而言,它比生成子类方式更为灵活,属于结构性模式一种. 2.模式结构 抽象组件角色(Component):定义一个对象接口,以规范准备接受 ...

  9. 在 Visual Basic .NET 或 JScript 代码中使用早期绑定

    以往,开发人员喜欢使用 Visual Basic.VBScript 和 JScript 的原因之一就是它们所谓"无类型"的性质.变量不需要显式类型声明,并能够简单地通过使用来创建它 ...

最新文章

  1. 25.2. String
  2. Kubernetes上领先的开源Serverless解决方案有哪些
  3. 边缘计算 — MEC 与运营商
  4. Scikit-learn数据预处理分类变量编码之字段特征编码
  5. 用了2年多快3年的老ASUS本子出了点小问题了
  6. ubuntu上安装docker
  7. leetcode232. 用栈实现队列
  8. CF1286D-LCC【动态dp,数学期望】
  9. javaone_JavaOne 2012:观察与印象
  10. python怎么打开笔记本无线网络开关_如何轻松搞定 笔记本搜不到WIFI信号问题
  11. 如何手动启动消防广播_怎样启动消防应急广播及求救系统?
  12. 【Pygame】屏幕图形绘制
  13. 中的live_张杰两首歌曲连唱彰显LIVE实力 青春演说温暖人心
  14. 常用的软件(百度网盘分享:永久有效)
  15. 推特情感分析-基于spark
  16. main函数的argc与arg
  17. 计算机无法连接网络显示错误651,电脑连接路由器提示错误651解决办法
  18. Gitlab和AD账号集成,账号登录时报错:Invalid credentials
  19. 基于python的医学图像以辅助医疗系统
  20. 中国历代王朝疆域面积一览表

热门文章

  1. 抓取WebSocket推送的消息
  2. 非网管工业交换机和网管工业交换机区别
  3. sql中intersect_INTERSECT –谓词中被低估的双向
  4. 参加过知了堂成都Java培训后,需要多久能达到年薪十万?
  5. PSTN 与 PBX 业务
  6. 成功 自信 快乐, ――给中国青年学生的一封信
  7. Zabbix一键部署
  8. F.巴啦啦能量 【尺取法】
  9. python处理sa雷达数据存储板_雷达数据处理和风场反演
  10. Lidar与IMU标定——lidar_imu_calib