装饰模式+vb.net实现

Module Module1
    Sub Main()

        Dim hu As New huyang
        hu.name = "mm"
        '开始装饰  
        Console.WriteLine("。。。开始装饰。。。。")
        '定义装饰的对象,以及被装饰的人  
        Dim dc As New DecoratorCool()
        Dim dc2 As New DecoratorCool2()
        dc.getperson(hu)
        dc2.getperson(dc)
        dc2.show()
        Console.ReadKey()
    End Sub
End Module
'抽象人的基类  
Public MustInherit Class Person
    '具体的人
    Protected Shared _name As String = "I"

    Public WriteOnly Property name() As String
        Set(ByVal value As String)
            _name = value
        End Set
    End Property

    '打扮  
    MustOverride Sub show()

End Class

Public Class huyang : Inherits Person

    Public Overrides Sub show()
        Console.WriteLine("{0}穿上外套。。。。", _name)
    End Sub


End Class
'定义装饰类  
Public Class Decorator : Inherits Person

    Protected _person As Person

    Public Sub getperson(ByVal person As Person)
        _person = person
    End Sub
    Public Overrides Sub show()
        _person.show()
    End Sub

End Class
'添加酷帅的墨镜效果  
Public Class DecoratorCool : Inherits Decorator
    Public Overrides Sub show()
        MyBase.show()
        Console.WriteLine("{0}带上墨镜。。。出门去", _name)
    End Sub
End Class
'添加酷帅的化妆效果  
Public Class DecoratorCool2 : Inherits Decorator
  
    Public Overrides Sub show()
        MyBase.show()
        Console.WriteLine("{0}化妆。。。出门去", _name)
    End Sub
End Class

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值