2011-09-09 22 views
0

私は最近、テスト駆動開発の学習を始めましたが、私は自分のクラスの設計を変更して、より高いレベルのクラスがいくつかのプロパティにアクセスできるようにしています。 (設計を変更した後、私のテストケースも書き直さなければならないでしょう)オブジェクト指向設計

例えば、私はMineSweeperプログラムを書いてこれを練習しています。 MineFieldImpクラスには幅と高さのプロパティがありますが、以前作成したMineFieldインターフェイスではこれを公開しませんでした。しかし後で私はこの機能が必要であることを知っているので、これらのプロパティを追加するには、このクラスとそれが実装しているインターフェースにpublicメソッドを追加する必要があります。

私は以前は考えていなかったクラスにメソッドやフィールドを追加しています。 私は何が間違っていますか?改善のために何をすべきですか?

おかげで、あなたは何も悪いことをしていない ヤン

+0

あなたは正しいことをしています。 stackoverflowの他の多くの開発者と同様に、私は何年も紙やモデリングツールでクラスを設計してからコードを作成しますが、私はまだ計画しなかったメソッドとプロパティを追加します;-) – umlcat

答えて

2

。クラスデザインは常に変化するプロセスであり、常に変化しています。これはTDDとユニットテストの美しさです。あなたのデザインが変更されると、あなたのリファクタリングが何かを壊していないことを保証する単体テストがあります。

Fowler's Refactoring本を読むことを強くお勧めします。多くの有用なリファクタリングパターンやリファクタリング方法のガイダンスなど、多くの素晴らしい情報があります。これは間違いなくあなたの生産性を高め、より良いオブジェクト指向のデザインを作成するのに役立ちます。

+1

(+) " "evolutive"という言葉の単語、;-) – umlcat

+0

合意した、それは良い言葉です。私は自分の投稿を更新しました。 – bittersweetryan

関連する問題