1. ホーム
  2. java

Play!フレームワークでは静止画が<たくさん>使われている

2023-11-18 10:51:24

質問

わー、Play!フレームワークには静的メソッドがたくさんありますね。私が通っている学校では、次のように言われました。 決して と言われたのに、Play!はそれを当たり前のように使っている。それは何とか大丈夫なのでしょうか?もしそうなら、なぜですか?

私たち(7人と私)は、Webアプリを含むプロジェクトにPlay!フレームワークを使用することを計画しています。私たちは、Play! を使って行うことを決定しました。それは、かなり楽しそうで、私たち全員がすでに Java を知っており、課題がかなり難しいので、別の言語でプログラミングする方法を学ぶよりも、実際の課題に集中したいと考えたからです。

しかし、私たちはいつも言われていました。 決して を使うように言われましたが、Play! ... まあ...半分くらいはstaticなメソッドなんですけどね </exaggeration>

最低限、シングルトン オブジェクトを使用して (Scala などで) プログラムすることは可能だと思いますが、実際にフレームワーク自体にどれだけの静的メソッドがあるのか、かなり気になりますね。

というわけで、これは気にする必要があるのでしょうか?Play! の開発者がプログラムした方法によって、これらの静的要素がすべて問題にならないようにしたのでしょうか?

(たとえば このスレッド には、なぜ静的メンバを全力で避けるべきかという暴論があります)。

どのように解決するのですか?

静的メソッドは、意味のある場合のみ使用します。

  • コントローラはオブジェクト指向ではないため、コントローラ層で静的メソッドを使用します。コントローラはオブジェクト指向ではないため、コントローラは HTTP の世界 (ステートレスでリクエスト/レスポンスベース) と完全にオブジェクト指向のモデル層との間のマッパーとして機能します。
  • はモデル層で findAll()、count()、create() などのファクトリーメソッドを提供し、もちろん特定のインスタンスに依存することはない。
  • 純粋にユーティリティな機能を提供するいくつかの play.libs.* クラスの中にあります。