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

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

23
コードの切り替えを排除する方法[終了]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 3年前休業。 この質問を改善する コードでスイッチの使用を排除する方法は何ですか?

3
Facebookアーキテクチャ[終了]
ここで何が尋ねられているのかを知るのは難しい。この質問は、あいまいで、あいまいで、不完全で、過度に広い、または修辞的であり、現在の形では合理的に回答することができません。再開できるようにこの質問を明確にするヘルプについては、ヘルプセンターに アクセスしてください。 7年前休業。 私はFacebookのアーキテクチャ、それらが取り組む課題と方法に関する記事や情報を探し求めてきました。彼らが使うものと彼らが使う理由。どのようにスケールするか、何をするための設計上の決定かなど。学習することの主な基盤。このような大量のトラフィックを処理するサイトについて知ることは、建築家などが新しいサイトを設計するときに特定のことを覚えておくための多くの指針を与えます。私が見つけたものを共有しています。 Facebook Science&Social Graph(ビデオ) Facebookで拡張 Facebookチャットのアーキテクチャ Facebookブログ Facebook Cassandraのアーキテクチャとデザイン Facebookエンジニアリングノート Quora-Facebookアーキテクチャ 600Mユーザー向けFacebook FacebookでのHadoopとその使用法 ErlangのFacebook:チャットアーキテクチャ Facebookパフォーマンスキャッシュ Facebook Connectアーキテクチャ リンクが2つありますが、このサイトの制限により投稿できません。また、誰かがより良いものを持っている場合は共有してください(Facebookにのみ関連している必要はありません)。 PS-この調査を共有するのに適した場所を見つけることができなかったため、このイニシアチブになりました。これが誰かを助けることを願っています。


9
シェルスクリプトの設計パターンまたはベストプラクティス[終了]
現在のところ、この質問は、Q&A形式には適していません。事実、参考文献、専門知識によって回答が裏付けられることを期待していますが、この質問は、討論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問が改善され、場合によっては再開できると思われる場合は、ヘルプセンターにアクセスしてください。 8年前に閉鎖。 シェルスクリプト(sh、bashなど)のベストプラクティスやデザインパターンについて説明しているリソースを知っている人はいますか?

6
pythonデザインパターン[終了]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 4年前休業。 この質問を改善する Pythonを使用したベストプラクティス、デザインパターン、SOLID原則の例を提供するリソースを探しています。

10
C#オブジェクトプーリングパターンの実装
Sql接続プーリングの範囲内で、限られたリソースに対して共有オブジェクトプール戦略を実装するための優れたリソースを持っている人はいますか?(つまり、スレッドセーフであることを完全に実装します)。 明確化のために@Aaronaughtリクエストに関してフォローアップすることは、プールの使用が外部サービスへのリクエストのロードバランシングのためになることです。私の直接的な状況とは対照的に、おそらくすぐに理解しやすいシナリオにそれを置くこと。同様に機能するセッションオブジェクトがあります。ISessionNHibernateオブジェクトます。一意の各セッションがデータベースへの接続を管理すること。現在、1つの長時間実行セッションオブジェクトがあり、サービスプロバイダーがこの個別セッションの使用をレート制限しているという問題が発生しています。 単一のセッションが長時間実行されるサービスアカウントとして扱われるという期待の欠如のため、彼らは明らかに、サービスをハンマーしているクライアントとしてそれを扱います。ここで私の質問に移動します。個別のセッションを1つ持つ代わりに、以前のように単一のフォーカルポイントを作成するのではなく、異なるセッションのプールを作成し、複数のセッションにわたってサービスにリクエストを分割します。 うまくいけば、その背景にはいくつかの価値がありますが、いくつかの質問に直接答えることができます: Q:オブジェクトの作成には費用がかかりますか? A:限られたリソースのプールであるオブジェクトはありません Q:非常に頻繁に取得/リリースされますか? A:はい。これもまた、NHibernate ISessionsと考えることができます。この場合、通常、1つのページ要求ごとに1が取得および解放されます。 Q:単純な先着順で十分でしょうか、またはよりインテリジェントなもの、つまり飢餓を防ぐものが必要ですか? A:単純なラウンドロビンタイプの配布で十分です。飢餓により、発信者が解放を待ってブロックされる使用可能なセッションがない場合を想定しています。セッションは異なる呼び出し元で共有できるため、これは実際には適用できません。私の目標は、単一のセッションではなく、複数のセッションに使用量を分散することです。 これはおそらく、オブジェクトプールの通常の使用法との相違であると考えられます。そのため、もともとこの部分を省略し、パターンを調整してオブジェクトの共有を可能にすることを計画しました。 Q:優先度、遅延読み込みと積極読み込みなどはどうなりますか? A:優先順位付けは含まれていません。簡単にするために、プール自体の作成時に使用可能なオブジェクトのプールを作成すると仮定します。

4
オブザーバー、Pub / Sub、データバインディングの違い
オブザーバーパターン、パブリッシュ/サブスクライブ、データバインディングの違いは何ですか? Stack Overflowで少し検索したところ、良い答えは見つかりませんでした。 私が信じるようになったのは、データバインディングは一般的な用語であり、ObserverパターンやPub / Subパターンなど、それを実装するさまざまな方法があるということです。オブザーバーパターンでは、Observableがオブザーバーを更新します。Pub / Subを使用すると、0人のパブリッシャーが特定のクラスのメッセージをパブリッシュでき、0人のサブスクライバーが特定のクラスのメッセージをサブスクライブできます。 「データバインディング」を実装する他のパターンはありますか?

16
テンプレート方式と戦略パターンの違いは何ですか?
テンプレートメソッドパターンと戦略パターンの違いは何ですか? 私が知る限り、それらは99%同一です。唯一の違いは、テンプレートメソッドパターンが基本クラスとして抽象クラスを持っているのに対し、戦略クラスは各具象戦略クラスによって実装されるインターフェースを使用することです。 ただし、クライアントに関する限り、それらはまったく同じ方法で消費されます-これは正しいですか?

10
WindowsフォームのUIデザインパターン(MVVM for WPFなど)
MVVMはWPFに完全に適しているため、WPFで最もよく使用されます。しかし、Windowsフォームはどうですか?このようなWindowsフォームにも、確立されて一般的に使用されているアプローチ/デザインパターンはありますか?Windowsフォームで明示的にうまく機能するものですか?これをよく説明する本や記事はありますか?多分MVPまたはMVCベース?

12
いつブリッジパターンを使用しますか?アダプターパターンとどう違うのですか?
誰もがブリッジパターンを実際のアプリケーションで使用したことがありますか?もしそうなら、それをどのように使用しましたか?それは私ですか、それとも少しの依存関係の注入がミックスされたアダプタパターンだけですか?それは本当に独自のパターンに値するのでしょうか?

4
イベントハンドラーのメモリリークを回避する理由と方法
StackOverflowでいくつかの質問と回答を読むこと+=で、C#(または他の.net言語)を使用してイベントハンドラーを追加すると、一般的なメモリリークが発生する可能性があることに気づきました... 私は過去にこのようなイベントハンドラーを何度も使用しましたが、それらがアプリケーションでメモリリークを引き起こしたり、引き起こしたりしていることに気付いていませんでした。 これはどのように機能しますか(つまり、実際にメモリリークが発生するのはなぜですか)? この問題を解決するにはどうすればよいですか?-=同じイベントハンドラを使用して十分ですか? このような状況に対処するための一般的な設計パターンまたはベストプラクティスはありますか? 例:UIでいくつかのイベントを発生させるために多くの異なるイベントハンドラーを使用して、多くの異なるスレッドを持つアプリケーションをどのように処理するべきですか? すでに構築された大きなアプリケーションでこれを効率的に監視するための良い簡単な方法はありますか?


5
AngularJS:デザインパターンを理解する
AngularJSのリーダーであるIgor Minarによるこの投稿に関連して: MVP対MVVM対MVC。多くの開発者が何時間もの時間を費やして議論し、議論することができる、議論の余地のあるトピックです。 数年間AngularJSは(というか1そのクライアント側の変異体)に近いMVCとなりましたが、時間と多くのリファクタリングとAPIの改善のおかげ上で、それが近い今だMVVM - $スコープオブジェクトは、考えることができるのViewModelされていることControllerと呼ばれる関数で装飾されています。 フレームワークを分類してMV *バケットの1つに配置できることには、いくつかの利点があります。フレームワークを使用して構築されているアプリケーションを表すメンタルモデルを簡単に作成できるようにすることで、開発者がAPIに慣れるのに役立ちます。また、開発者が使用する用語の確立にも役立ちます。 とは言っても、開発者がMV *のナンセンスについて議論するのに時間を浪費するのではなく、開発者が適切に設計され、懸念の分離に従ってキックアスアプリを構築する方がいいと思います。このため、AngularJSをMVWフレームワーク-Model-View-Whateverとして宣言 します。「何でもあなたのために働く」の意味。 Angularは、ビジネスロジックやプレゼンテーション状態からプレゼンテーションロジックをうまく分離する多くの柔軟性を提供します。1日の終わりにそれほど重要ではないことについての白熱した議論ではなく、生産性とアプリケーションの保守性を向上させるために使用してください。 AngularJS MVW(Model-View-Whatever)設計パターンをクライアント側アプリケーションに実装するための推奨事項またはガイドラインはありますか?

13
Kotlinでビルダーパターンを実装する方法
こんにちは、コトリンの世界の初心者です。これまで見てきたことが好きで、アプリケーションで使用するライブラリの一部をJavaからKotlinに変換しようと考え始めました。 これらのライブラリーは、setter、getter、およびBuilderクラスを備えたPojoでいっぱいです。今私はKotlinでビルダーを実装するための最良の方法を見つけましたが、成功しませんでした。 2番目の更新:問題は、Kotlinでいくつかのパラメーターを持つ単純なpojoのビルダーデザインパターンを作成する方法ですか?以下のコードは、javaコードを記述してから、eclipse-kotlin-pluginを使用してKotlinに変換するという私の試みです。 class Car private constructor(builder:Car.Builder) { var model:String? = null var year:Int = 0 init { this.model = builder.model this.year = builder.year } companion object Builder { var model:String? = null private set var year:Int = 0 private set fun model(model:String):Builder { this.model = model return this } …

7
データベースにコメントといいね!を実装する
私はソフトウェア開発者です。私はコードを愛して、私は現在、私のように、ユーザがエンティティをマークするために許可されるには、ウェブサイト作成しています...データベースを嫌い言っています(FBでのように)、タグ、それをしてコメントを。 この機能を処理するためのデータベーステーブルの設計に行き詰まっています。1つのタイプ(写真など)に対してのみこれを実行できる場合、解決策は簡単です。しかし、私はこれを5つの異なるものに対して有効にする必要があります(現時点では、サービス全体が成長するにつれて、この数が増える可能性があることも想定しています)。 ここで似たような質問をいくつか見つけましたが、どれも満足のいく答えはありません。そのため、もう一度この質問をします。 質問は適切、方法、である効率的かつ弾力それが異なるため、コメント保存することができるように、データベースを設計テーブルを、好き異なるため、テーブルやタグ彼らのために。回答としてのいくつかのデザインパターンが最良です;) 詳細な説明:私はテーブル User一部のユーザーデータ、および3つの以上とテーブルを:Photoで撮影、Articlesとの記事、Placesと場所。ログインしたユーザーが次のことをできるようにしたい: これら3つのテーブルのいずれかにコメントする それらのいずれかを好きとしてマーク それらのいずれかにいくつかのタグを付けます また、すべての要素のいいねの数と、特定のタグが使用された回数をカウントしたいと思います。 1 回目のアプローチ: a)のためのタグ、私が作成するテーブルを Tag [TagId, tagName, tagCounter]、そして私が作成する多対多の関係のテーブルをするために:Photo_has_tags、Place_has_tag、Article_has_tag。 b)コメントも同じです。 C)私が作成するテーブルを LikedPhotos [idUser, idPhoto]、LikedArticles[idUser, idArticle]、LikedPlace [idUser, idPlace]。多くの同類をして算出されたクエリ(私が悪いと仮定し、)。そして... 私は最後の部分のこのデザインが本当に好きではありません、それは私にとってひどいにおいがします;) 2 番目のアプローチ: 私は、テーブルが作成されますElementType [idType, TypeName == some table name]の名前を持つ管理者(私)によって移入されたテーブルすることができます言っています、コメントやタグ付けを。次に、テーブルを作成します。 a)LikedElement [idLike, idUser, idElementType, idLikedElement]それぞれに適切な列があるコメントとタグについても同じです。今、私は写真を好きにしたいときに挿入します: typeId = SELECT id FROM ElementType WHERE TypeName == 'Photo' …

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