2006年08月20日

ログ生成用クラス (4)

ログ生成用クラス (3) に引き続き、CoreLog クラスの実装をみていきましょう。 今回はゲッターとセッターを抜き出してみました。

関係ありませんが、ゲッター と言えば、僕の心に浮かぶのは このページ。 いつも僕に勇気をくれます。
  ' ---- Getter/Setter methods ----

Public Sub setTraceLevel(level%)
If (0 < level% And level% < 100) Then
Me.traceMaxLevel% = level%
Else
Me.traceMaxLevel% = 0
End If
End Sub

Public Function getTraceLevel() As Integer
getTraceLevel = Me.traceMaxLevel%
End Function

Public Function getLog() As NotesRichTextItem
Set getLog = Me.itemDetail
End Function

Public Function getTrace() As NotesRichTextItem
Set getTrace = Me.itemTrace
End Function
基本的にはクラス変数は private にして隠し、ゲッター/セッター を用意してアクセス可能にします。 またゲッター/セッターは一箇所にまとめることで、クラスの入出力を把握しやすくするのが、僕の好みです。

ただ getXXX/setXXX という書き方はあまり LotusScript っぽくないですよね。 僕はもともと Java な人なので、このあたり、お見逃しください。 (^-^;

今回は特に凝ったロジックはなく、setTraceLevel() のみ、トレースレベルを 0 〜 99 の間になるようにチェックしています。

余談ですが前回、僕がコンストラクタ内で setTraceLevel() というセッターメソッドを使用しているのにお気づきでしょうか?

コンストラクタ内ではまだ初期化が完了しておらず、メソッドを使わないほうが良い、という意見もあろうかと思います。 でも僕は、セッターは値を確認するだけの 最低限の実装 にするようにしていて、コンストラクタ内でも恐れず使うようにしています。 値チェックはできる限り働いて欲しいとおもいますので...。

さて次回は、サービスの中心となるメソッドの記述をみていきましょう。
posted by yamachan at 07:27| Comment(0) | TrackBack(0) | my設計パターン
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/1142595

この記事へのトラックバック