1

数人のプログラマーが関与するアプリケーションを作成しています。ソース コードを管理するときに問題が発生します。通常、さまざまなユーザー間で共有される Utility.php があります。それで、私たちは大きな utility.php を作成し、誰もがこれを呼び出しています...

しかし、ここで問題が発生…例えば、プロジェクトを分離したい場合、CMSのフォントエンドとバックエンドがあります。既存のプロジェクトを分割したい場合は、大きな utility.php を場所ごとに分割するか、一度コピーするか、他のプロジェクトと同期する必要があります。そのため、関連するクラスでのみ使用されるさまざまな小さなユーティリティを使用することを検討しています。助言がありますか??

現在: FontEnd.php が呼び出し中 --> Utility.php BackEnd.php が呼び出し中 ---> Utility.php

考慮事項: FontEnd.php が呼び出し中 --> StyleUtility.php, ClientUtility.php, bababa BackEnd.php が呼び出し中 ---> DBUtility.php, MaintainUtility.php , ababba

4

1 に答える 1

2

GOD クラスまたはモジュール (太陽の下ですべての仕事を行うもの) がある状況に身を置くべきではありません。

彼らは 1 つのことを 1 つだけうまく行う必要があります。これが単一責任の原則です。データベースの呼び出しとユーザー インターフェイスのレイアウトを行うモジュールが 1 つしかない場合、それは間違っています。

従うべき規則は、結合を最大化し、結合を最小化することです。

最大限の結束とは、1 つのモジュール内のすべてが相互に密接に関連している必要があることを意味します (1 つのモジュールですべてのデータベース インターフェイス、別のモジュールですべてのファイル I/O、さらに別のモジュールですべての統計関数など)。

最小限の結合とは、クラス間に不要な依存関係が存在しないことを意味します。データベース モジュールには非常に明確に定義された API が必要であり、その API をバイパスするデータベース処理を実行する方法はありません。

言い換えれば (たとえば)、圧縮機能とウィンドウ管理機能を 1 つのモジュールにまとめるのはよくありません。必ず圧縮ユーティリティ モジュールとウィンドウ管理モジュールを用意しますが、それらを一緒にしないでください。

于 2011-07-14T11:32:23.627 に答える