アンチパターンではありません。アンチパターンには、良いアイデアのように思わせるいくつかの特性があり、人々が意図的にそれを行うように導きます。それらはパターンとして計画されており、ひどく間違っています。
また、何かがパターン、アンチパターン、またはいくつかの場所でまだ使用されている一般的に誤用されたパターンであるかどうかについての議論になります。
これは間違っています。
もう少し追加します。
このコードは迷信的であるか、せいぜい貨物カルトの慣行です。
迷信は、明確な正当化なしに行われるものです。実際の何かに関連している可能性がありますが、接続は論理的ではありません。
カーゴカルトの実践とは、より知識のあるソースから学んだことをコピーしようとするものですが、実際にはプロセスではなく表面のアーティファクトをコピーしています(パプアニューギニアのカルトの名前は第二次世界大戦の日本とアメリカの飛行機が戻ってくることを期待して、航空機から無線を制御します)。
これらの両方のケースで、実際のケースを作成する必要はありません。
アンチパターンは、小さなもの(対処しなければならない余分なケースに対処するための余分な分岐、スパゲッティコードにつながる)でも、意図的にパターンを実装する大規模なものでも、合理的な改善の試みです。信用されていないか、議論されている(多くはシングルトンをそのように説明し、書き込み専用を除くものもあります-例えば、ロギングオブジェクトまたは読み取り専用、例えば構成設定オブジェクト-そしていくつかはそれらを非難します)間違った問題(.NETが最初に発表されたとき、MSは、管理されていないフィールドと使い捨ての管理されたフィールドの両方がある場合の破棄を処理するためのパターンを推奨しました-実際にその状況を非常にうまく処理しますが、本当の問題はあなたが持っていることです同じクラスの両方のタイプのフィールド)。
そのため、アンチパターンは、言語、問題領域、および利用可能なライブラリを熟知している賢明な人が意図的に行うものであり、それでも欠点を抱えている(または抱えていると主張されている)欠点を克服しています。
誰も特定の言語、問題領域、利用可能なライブラリをよく知らないので、誰もが合理的な解決策から別の解決策に移行するときに何かを逃す可能性があるので(たとえば、使用目的のためにフィールドに何かを保存し始めてから、それをリファクタリングしますが、仕事を完了しません、そしてあなたは質問のようなコードになります)、そして私たちは学習で時々物事を見逃しているので、私たちはいくつかの点で迷信的または貨物カルトなコードを作成しました。良いことは、アンチパターンよりも実際に識別して修正する方が明確であることです。真のアンチパターンは、ほぼ間違いなくアンチパターンではないか、魅力的な品質を持っているか、少なくとも悪いと特定された場合でもそれらを引き付ける何らかの方法があります(層が多すぎて少なすぎると、議論の余地なく悪いが、1つを避ける他につながる)。