まさるblog

越後在住子持ちプログラマー奮闘記 - Author:まさる(高野 将、TAKANO Sho)

目次

Blog 利用状況

ニュース

著書

2010/7発売


Web掲載記事

@IT

.NET開発を始めるVB6プログラマーが知るべき9のこと

CodeZine

実例で学ぶASP.NET Webフォーム業務アプリケーション開発のポイント

第1回 3層データバインドを正しく活用しよう(前編)

ブログパーツ


書庫

日記カテゴリ

コミュニティ

デザインパターンを学ぶ~その9:ちょっとだけStrategyパターン~

#と忍空のようなタイトルにしてみた。

 

その1のコードをVBに直してみました。

 

VB Code
' 走る"振る舞い"インタフェイス
Public Interface IRunBehavior
    Sub Run()
End Interface

' 速く走る
Public Class RunFastBehavior
    Implements IRunBehavior

    Public Sub Run() Implements IRunBehavior.Run
        Console.WriteLine("速く走る!")
    End Sub
End Class

' ふつうに走る
Public Class RunBehavior
    Implements IRunBehavior

    Public Sub Run() Implements IRunBehavior.Run
        Console.WriteLine("ふつうに走る")
    End Sub
End Class

' ゆっくり走る
Public Class RunSlowBehavior
    Implements IRunBehavior

    Public Sub Run() Implements IRunBehavior.Run
        Console.WriteLine("ゆっくり走る~")
    End Sub
End Class

' 人間クラス
Public Class Human
    ' 走る"振る舞い"
    Private _RunBehavior As IRunBehavior

    ' コンストラクタ
    Public Sub New()
        ' コンストラクタ内で、IRunBehaviorクラスのインスタンスを生成
        _RunBehavior = New RunBehavior()
    End Sub

    ' 走る動作
    Public Sub ParformRun()
        _RunBehavior.Run()
    End Sub

    ' 走る"振る舞い"をセットするプロパティ
    Public WriteOnly Property RunBehavior() As IRunBehavior
        Set(ByVal value As IRunBehavior)
            Me._RunBehavior = value
        End Set
    End Property
End Class

Public Shared Sub Main(ByVal args As String())
    Console.WriteLine("よーい、スタート!")

    ' まず、そのまま走ります
    Dim _human As New Human()
    _human.ParformRun()

    ' 速く走ります
    _human.RunBehavior = New RunFastBehavior()
    _human.ParformRun()

    ' ゆっくり走ります
    _human.RunBehavior = New RunSlowBehavior()
    _human.ParformRun()

    Console.WriteLine("ゴール!")

    Console.ReadLine()
End Sub

まあ、大して参考にもならんかもしれませんが。

投稿日時 : 2007年6月28日 23:51

Feedback

No comments posted yet.
タイトル
名前
Url
コメント