2012-02-23 10 views
4

機能のトグルは新しい機能に対して完全に機能します。ほとんどの場合、機能は機能設定に基づいて表示されるか、表示されないUIコンテナで囲まれている必要があります。しかし、新しい機能で既存のコードベースを大幅に変更する必要がある場合、どのように機能トグルを使用することができますか?私は 'copy & change'を使用することはできません。明らかに、機能の分岐よりもはるかに悪いので、私はマージの競合を取得しません。そのような要件のベストプラクティスは何ですか?新しい機能でコードベースの大幅な変更が必要な場合、機能トグルを処理するにはどうすればよいですか?

+0

トグルしたい「古い」機能に関連するすべてのコントロールを非表示にすることはできますか?または、新しいUIコンテナに移動します。たとえばWinAPIでは、これはコントロールのリストを作成してSetParent SetWindowPosを実行するだけです。 – exebook

答えて

1

機能トグルをIoCコンテナと組み合わせて、コンポーネントのさまざまな実装をロードできます。たとえば、トグル「A」は実装「X」をロードし、トグル「B」は実装「Y」をロードします。このアプローチにより、並列実装を維持し、単一のトグルに基づいて従来の機能と新しい機能を有効にすることができます。

+0

このようなアプローチには2つの問題があります。最初のものは、レガシーコードで修正されたバグが新しいコードで修正されない可能性があるということです(ただし、単体テストでは役に立ちます)。しかし、第2の重要な問題は、新しい実装を作成する前に、古いものを書き直さなければならない(リファクタリングしなくても)ということです。 – Sane

関連する問題