問題タブ [god-object]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
326 参照

qt - QMainWindow の神のオブジェクトを取り除く

3 つのライブラリITK VTKQt. イベントループとシグナルとスロットの接続にすべての機能が必要なので、すべての機能を QMainWindow 定義の下に定義しました。mainwindow オブジェクトがかさばり、機能ごとに異なるクラスを作成しようとしましたがmain.cpp、モジュール化のアイデアで混乱しているものはすべて欠落しています。プログラムの構造をどのようにすべきか提案できますか?

0 投票する
2 に答える
4052 参照

angularjs - angularjsでサービスの代わりにネストされたコントローラーを使用するのはいつですか?

私は AngularJS を使い始めたばかりなので、専門家ではありません。

HTML ビューの右側の領域を表す div があります。そのdivにはコントローラーがあります。

その div 内にはテーブル、検索領域などがあります。その div 内の各領域には独自のコントローラーがあり、次のようになります。

たとえば、検索領域には独自のコントローラーがあり、親 (rightContainerCtrl) の一部のコンテンツを変更する必要があるため、rightContainerCtrl の子ですが、rightContainer div は成長しており、大きくなり、いくつかのネストされたコントローラーが含まれています。

このネストされたコントローラーを使用することは、このコンテキストでは悪いと思います。ネストされたコントローラーはすべて親スコープを共有し、すべてのコントローラーがすべての親スコープ変数にアクセスする必要があるわけではなく、すべてのコントローラーが rightContainerCtrl の「囚人」であるため、それらは親コントローラーと高度に結合されています。

これは神のオブジェクトのアンチパターン (この場合は神のコントローラー) のように見えるので、ネストされたコントローラーを使用する代わりに、コードをリファクタリングして rightContainerCtrl コントローラーを削除し、代わりにサービスを使用できると思います (ファサード デザイン パターンのように)。そのサービスは、スコープ変数を共有する代わりにコントローラーによって使用されます。

しかし、私はAngularJsの専門家ではないので、私が正しいかどうか、またはこの親コントローラーを離れた方がよいかどうかはわかりません。おそらく何かが足りないので、私の質問は

ネストされたコントローラー (ネストされたスコープ) を使用する方が良いのはいつですか? angularjs で代わりにサービスを使用する方が良いのはいつですか?

0 投票する
1 に答える
57 参照

java - いくつかの単純な基準によって検証する Validator クラス - これは神オブジェクトですか?

Java クラス Validator があります。一部のファイルを検証します。ここに疑似コードがあります:

各メソッドの行数は 15 行以内です。このクラスの合計の長さは ~300 行です。神のオブジェクトか、それとも他の悪臭を放つクラスだと思いますか? それはある種のアンチパターンですか?再設計が必要だと思われる場合は、その方法を教えてください。