タグ付けされた質問 「design-patterns」

設計パターンは、ソフトウェア設計で一般的に発生する問題に対する一般的な再利用可能なソリューションです。デザインパターンの実装に問題がある場合の質問には、このタグを使用します。テキストパターンマッチングに関する質問には、このタグを使用しないでください。このタグを実装の重い質問に使用する場合-実装が記述されているコード言語にタグを付けます。

20
いつビジターデザインパターンを使用すればよいですか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 昨年休業。 この質問を改善する 私はブログでビジターパターンへの言及を見続けていますが、認めざるを得ません。私はパターンについてウィキペディアの記事を読み、そのメカニズムを理解しましたが、それをいつ使用するかについてはまだ混乱しています。 最近本当にデコレータパターンを取得し、今やあらゆる場所で使用されている人として、この一見便利なパターンも直感的に理解できるようになりたいと思っています。

15
PythonでIoC / DIが一般的ではないのはなぜですか?
Javaでは、IoC / DIは非常に一般的な手法であり、Webアプリケーション、ほぼすべての利用可能なフレームワーク、Java EEで広く使用されています。その一方で、大きなPython Webアプリケーションもたくさんありますが、Zope(コードで言うと恐ろしいはずですが)の他に、IoCはPythonの世界ではあまり一般的ではないようです。(私が間違っていると思われる場合は、いくつか例を挙げてください)。 もちろん、Pythonで使用できる一般的なJava IoCフレームワークのクローンがいくつかあります(たとえば、springpython)。しかし、どれも実際に使われているようには見えません。少なくとも、私はそのようなものを使用するDjangoまたはsqlalchemy + <insert your favorite wsgi toolkit here>ベースのWebアプリケーションに踏み込んだことはありません。 私の意見では、IoCには妥当な利点があり、たとえばdjango-default-user-modelを簡単に置き換えることができますが、PythonでのインターフェースクラスとIoCの広範な使用は、「pythonic」ではなく、少し奇妙に見えます。しかし、誰かがより良い説明をしているかもしれません。なぜIoCはPythonで広く使用されていないのでしょうか。

15
Dependency InjectionとService Locatorのパターンの違いは何ですか?
どちらのパターンも、制御の反転の原則の実装のように見えます。つまり、オブジェクトは依存関係の構築方法を知らないはずです。 Dependency Injection(DI)は、コンストラクターまたはセッターを使用して依存関係を「注入」するようです。 コンストラクターインジェクションの使用例: //Foo Needs an IBar public class Foo { private IBar bar; public Foo(IBar bar) { this.bar = bar; } //... } Service Locatorは「コンテナ」を使用しているようです。これは依存関係を結び付け、fooにバーを提供します。 サービスロケーターの使用例: //Foo Needs an IBar public class Foo { private IBar bar; public Foo() { this.bar = Container.Get<IBar>(); } //... } 私たちの依存関係は単なるオブジェクトそのものなので、これらの依存関係には依存関係があり、さらに多くの依存関係があり、以下同様です。このようにして、Inversion of …


24
シングルトン:どのように使用すべきか
編集:別の質問から私はシングルトンに関する多くの質問/回答へのリンクを含む回答を提供しました:シングルトンの詳細についてはこちら: だから私はシングルトンのスレッドを読んだ:良いデザインか松葉杖か? そして、議論はまだ激化しています。 シングルトンをデザインパターン(良い点と悪い点)と見なしています。 シングルトンの問題はパターンではなく、むしろユーザー(すみません)です。誰もが彼らの父親は、それらを正しく実装できると考えています(そして、私が行った多くのインタビューから、ほとんどの人はそうすることができません)。また、誰もが正しいシングルトンを実装できると考えているため、パターンを悪用し、不適切な状況で使用します(グローバル変数をシングルトンに置き換えます!)。 したがって、回答する必要がある主な質問は次のとおりです。 いつシングルトンを使うべきか シングルトンをどのように正しく実装しますか この記事に対する私の期待は、シングルトンを正しく使用するための信頼できる情報源(および複数のサイトを検索する必要があるのではなく)を1か所にまとめることができることです。また、アンチユーセージのリストと、それらが機能しない理由を説明する一般的な不良実装のリストと、適切な実装の弱点も適切です。 だからボールを​​転がしてください: 私は手を挙げて、これが私が使うものだと言いますが、おそらく問題があります。 私は彼の本「Effective C ++」の主題の「スコットマイヤーズ」の扱いが好きです シングルトンを使用するのに適した状況(多くはない): ロギングフレームワーク スレッドリサイクルプール /* * C++ Singleton * Limitation: Single Threaded Design * See: http://www.aristeia.com/Papers/DDJ_Jul_Aug_2004_revised.pdf * For problems associated with locking in multi threaded applications * * Limitation: * If you use this Singleton (A) within …

6
リレーショナルデータベースの設計パターン?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 2か月前に閉鎖。 この質問を改善する デザインパターンは通常、オブジェクト指向のデザインに関連しています。リレーショナルデータベースを作成およびプログラミングするための設計パターン はありますか? 多くの問題には、必ず再利用可能な解決策が必要です。 例には、テーブルデザイン、ストアドプロシージャ、トリガーなどのパターンが含まれます。 martinfowler.comのような、そのようなパターンのオンラインリポジトリはありますか? パターンが解決できる問題の例: 階層データの保存(例:タイプが1つのテーブルと1:1のキーと相違がある複数のテーブル...) 可変構造でデータを保存する(例:汎用列vs xml vs区切り列...) データを非正規化する(影響を最小限に抑える方法など...)


2
リポジトリパターンの段階的な説明[終了]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? Stack Overflowのトピックとなるように質問を更新します。 7年前休業。 この質問を改善する 誰かが私に.NETのリポジトリパターンを説明してくれますか? これは非常に一般的な質問であることは知っていますが、これまでのところ、満足のいく答えが見つかりません。

12
Androidで使用されているアーキテクチャパターンはどれですか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 2年前休業。 この質問を改善する モバイルプラットフォームの小規模な調査を行っていますが、Androidで使用されているデザインパターンを知りたいのですが? たとえば、iOSでは、ビューモデルコントローラーは委任やその他のパタ​​ーンと共に非常に広く使用されています。 Androidはどのようなパターンで、特にどこで使用しますか? 編集 カーネルやdalvikなどで深く使用されているデザインパターンを求めるのではなく、アプリケーション開発者がアプリケーションの開発中に出会うパターンについて尋ねます。


27
セッターに「これ」を返すのは悪い習慣ですか?
Javaのセッターに「これ」を返すようにするのは良いことですか、悪いことですか? public Employee setName(String name){ this.name = name; return this; } このパターンは、次のようにセッターをチェーンできるので便利です。 list.add(new Employee().setName("Jack Sparrow").setId(1).setFoo("bacon!")); これの代わりに: Employee e = new Employee(); e.setName("Jack Sparrow"); ...and so on... list.add(e); ...しかし、それは一種の標準的な慣習に反します。セッターが何か便利なことをできるからといって価値があるのではないでしょうか。このパターンがいくつかの場所(JMock、JPAなど)で使用されているのを見てきましたが、一般的ではないようで、このパターンがどこでも使用されている非常に明確に定義されたAPIでのみ使用されます。 更新: 私が説明したことは明らかに有効ですが、私が本当に探しているのは、これが一般的に受け入れられるかどうか、および落とし穴や関連するベストプラクティスがあるかどうかについての考えです。Builderパターンについては知っていますが、私が説明しているものより少し複雑です。JoshBlochが説明しているように、オブジェクトを作成するための静的なBuilderクラスが関連付けられています。
249 java  design-patterns  api  oop 


23
MVVMを使用したWPFでのダイアログの処理
WPFのMVVMパターンでは、ダイアログの処理はより複雑な操作の1つです。ビューモデルはビューについて何も知らないので、ダイアログ通信は興味深いものになる可能性があります。ICommandビューを呼び出すとダイアログが表示されることを公開できます。 誰かがダイアログからの結果を処理するための良い方法を知っていますか?私はのようなウィンドウダイアログについて話しているMessageBox。 これを行う方法の1つは、ダイアログが必要なときにビューがサブスクライブするビューモデルのイベントを使用することでした。 public event EventHandler<MyDeleteArgs> RequiresDeleteDialog; これは問題ありませんが、ビューにはコードを必要とすることを意味します。



弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.