私の問題は、MVC (PHP) フレームワークを使用しようとしていることです。多くの議論の後、MVC は非常に優れていると思いますが、再利用可能なモデル (アプリケーション) ロジックを作成する可能性がありません。そのため、ソフトウェアを MVC フレームワークに実装するための正しいアプローチがあるかどうかはわかりません。
最初に、現在使用している非 MVC の oo アプローチについて説明します。
たとえば、私たちはいくつかのブラウザ ゲームに取り組んでいます (そう、それが私たちの職業です)。プレーヤー オブジェクトがあるとします。このプレーヤー オブジェクトは頻繁に使用します。考えを購入できるいくつかの異なるページがあるため、プレーヤーの「銀行口座」で「お金」の取引を行うか、他のプレーヤーと戦うことができると想像してください。いくつかの戦闘スクリプトがあり、これらのスクリプトは 2 つ以上のプレイヤー オブジェクトを必要とします (戦闘の種類、つまりクラン戦、プレイヤー対プレイヤー戦などによって異なります)。
したがって、異なる戦闘ロジックを持ついくつかのページ (およびコントローラー) があります。ただし、この各コントローラーは、プレイヤー オブジェクトを使用して、プレイヤーが持つすべての属性とアイテム、およびプレイヤーが与えるダメージと防御を計算します。
では、MVC モデルの場合、プレーヤー オブジェクトでロジックを再利用するにはどうすればよいでしょうか? 必要なすべてのロジックをさまざまなファイト コントローラーとモデルで複製するのはよくありません。
「gold-transaction」ロジックは、より詳細な情報を提供する良い例だと思います。戦いの場合にはトランザクション関数が必要です。他のプレイヤーに勝って彼の金の一部を略奪する場合は、何かを購入する場合にトランザクション関数が必要であり、金を使う場合にはトランザクション関数が必要です。プレイヤーズギルドに…
したがって、これらすべての関数を 1 つのプレーヤー モデルで定義するのは悪い方法だと思います。これらのプレーヤー モデルは非常に大きいと言えます (実際には、プレーヤー クラスが非常に大きいという問題があります。これは神のクラスです)。
この問題に対する MVC スタイルの解決策があると思いますか?