Friend (モデル) を表すクラスがあります。この Friend には、他のモデルと同様に属性とメソッドがあります。
すべての友達のリストを含む Web ページを表示するには、そのデータを返す関数を作成する必要があります。
私の質問: その関数をどこに置くべきですか? Friend モデルの内部 (オブジェクトのリストを返す場合でも)? それとも、Friend モデルを使用する FriendList のような別のモデルを作成する必要がありますか?
ありがとうございました
Friend (モデル) を表すクラスがあります。この Friend には、他のモデルと同様に属性とメソッドがあります。
すべての友達のリストを含む Web ページを表示するには、そのデータを返す関数を作成する必要があります。
私の質問: その関数をどこに置くべきですか? Friend モデルの内部 (オブジェクトのリストを返す場合でも)? それとも、Friend モデルを使用する FriendList のような別のモデルを作成する必要がありますか?
ありがとうございました
理論的には、データはアプリケーションの外部のリソースに保存されます。これらのデータの取得を担当するオブジェクトは、通常、DataAccessObject (DAO) と呼ばれます。
あなたの場合、次のようなメソッドを公開するFriendDAOを持つことができます
List<Friend> retrieveAll();
Friend retrieveByName(String name);
persist(Friend friend);
等...
MVC のポイントは、データの永続性、操作、および表示を異なるレイヤーに明確に分離することです。
多くのバリアントを持つことができます。ビジネス ロジックはモデル レイヤーまたはコントローラーに配置できます。ビュー イベント処理専用のコントローラー (フロント コントローラー) を他のコントローラーまたはモデルに委譲することができます。
クラスに名前を付ける方法はそれほど重要ではありません。
それは非常に多くのことに依存します。
プロジェクトの大きさ、データの構造、使用したいパターンなどについて。
たぶん、最初に次のことを確認する必要があります。
また、ソフトウェアの基準に基づいて、何が必要かを判断できます。
Friends
ただし、クラスを拡張するというクラスを作成できますFriend
。このクラス内で、ロード機能を使用できます。
主に論理的ではないため、Friend クラス自体に取得関数を配置しません。
サンプルコード
class Friends : List<Friend>
{
public function bool RetrieveAll()
{
//load them here
}
}
EDIT : MVC を使用する場合は、Gab の回答を参照してください。