"Gang of Four"の略称。『オブジェクト指向における再利用のためのデザインパターン』を書いたErich Gamma、Richard Helm、Ralph Johnson、John Vlissidesの四人(ないし彼らの提唱するデザインパターン体系)をさす。"GoF"の呼称は文化大革命の「四人組」に由来。
デザインパターン
AWS Dev Day 2023 Tokyoで登壇してきました。 無事、2年連続で登壇することができました。
前置き 引用元:Java言語で学ぶデザインパターン入門第3版 デザインパターンはクラスの再利用化を促進するものです。 再利用化を促進するとは、 クラスを部品として使えるようにするということであり、1つの部品を修正しても、他の部品の修正が少なくてすむ、ということなのです。 本記事は当ブログ管理人よしたろうによる『GoFデザインパターン入門シリーズ』です。本記事では、各デザインパターンの総合的理解ができることをコンセプトにしております。ピンポイントな情報ではなく、理解に必要な周辺知識をできる限り記述していきます。一記事あたりの文章量は多くなる傾向になります。あまりそういった記事が見当たらないこと、…
前置き 引用元:Java言語で学ぶデザインパターン入門第3版 デザインパターンはクラスの再利用化を促進するものです。 再利用化を促進するとは、 クラスを部品として使えるようにすることであり、1つの部品を修正しても、他の部品の修正が少なくてすむ、ことなのです。 本記事は当ブログ管理人よしたろうによる『GoFデザインパターン入門シリーズ』です。本記事を見るだけで、各デザインパターンの総合的理解ができることをコンセプトにしております。ピンポイントな情報ではなく、理解に必要な周辺知識をできる限り記述していきます。一記事あたりの文章量は多くなる傾向になります。あまりそういった記事が見当たらないこと、自身…
始めに 本記事は当ブログ管理人よしたろうによる『GoFデザインパターン入門シリーズ』です。本記事を見るだけで、各デザインパターンの総合的理解ができることをコンセプトにしております。ピンポイントな情報ではなく、理解に必要な周辺知識をできる限り記述していきます。一記事あたりの文章量は多くなる傾向になります。あまりそういった記事が見当たらないこと、自身の学習のためにそういった形式にしております。以前の記事で詳しく紹介した部分はリンクの引用をする場合もあります。 こちらの記事では以下の流れでデザインパターンの解説を行なっています。 この中で最も重要なのは以下のふたつ 現代のGoFデザインパターンの立ち…
ストラテジーパターンというGoFのデザインパターンが良いコード悪いコードでも紹介されていたので、素振りします。 自分の言葉で上手な言語化ができていないので、メリットは参考情報や良いコード悪いコードの購入、または別の方の記事を参考にしてください。 環境 Java 17 今回の処理 複数の言語の文章を、ひとつの言語に変換する。 ※ 変換の具体的なロジックは実装しない。 対応 文章と言語名が記載されたDTOを生成する。 @Data public class Question { private String sentence; private Locale locale; } ストラテジーパターンを…
Adapter メソッドが違うなどして継承できない2つのクラスの仲介をする 既存のクラスは修正せず、仲介するAdapterを作ることで修正範囲を最小限にできる デザインパターン ~Adapter~ 内部処理用のBeanクラスと画面から値が入ってくるBeanクラス同士が 直接、継承などで結び付けられない時に使うのか! 新規の画面と入力値がやりとりできないから、とかで新しくBeanを作ったことがあるような…
Prototype インスタンスの生成をnew Class()でなく、インスタンスから別のインスタンスを生成する 雛形を作っておき、それをコピーして使う 例が思い浮かばなかったのでTECHSCOREの記事を使います 図形描画で「直線を描画するクラス」と直線を組み合わせて「図形を描画するクラス」がある 図形描画クラスで定義した三角、星などの図形を描画する処理を 雛形管理クラスでmap.put("star",星型の描画処理)のようにインスタンスを保存する → 星型をたくさん描画したい時はmap("star")だけでOK 図形ごとにクラスを作成するとクラス数が多すぎて保守性が下がるのでPrototy…
Factory Method スーパークラスを定義して、処理はサブクラスが行う スーパークラスがサブクラスに依存しないから改修はサブクラスだけで済む スーパークラスは「登録する」ことだけ定義されているので、サブクラスに依存しない Builderパターンとの違い Builder クラスのアウトラインは抽象クラス 処理を持ったサブクラスと組み合わせて複雑な処理を実現 Factory Method 抽象クラスには概念くらいアバウトな定義だけ(登録するなど) サブクラスは登録する処理だったら何でもOK 抽象クラスがサブクラスに依存しないので修正範囲を切り分けられる Abstract Factoryパタ…
Builder 抽象クラスを定義して処理は継承したクラスが行う 具象クラスのインスタンスによって処理の切り替えが簡単にできる 商品登録は「フォーム画面から登録」と「バーコードから登録」できる ピンクの商品登録クラスに具象クラスのインスタンスを渡せば登録方法が切り替えられる フォームから登録だと、「フォーム登録インスタンス」をピンクの商品登録に渡せばOK
はじめに エンジニアとしてのキャリアをスタートしたばかりの方が、ジュニアレベルやミドルレベルのエンジニアとして活躍するために必要なスキルや知識について考えてみます。 この記事はWEB領域のエンジニアを対象としています。 前提 前提として、私の知っている範囲のことしか書けませんが、弊社スマレジのエンジニアとして活躍できるレベルを目標としています。 スマレジでは、バックエンド、フロントエンドの領域で担当が分かれておらず、どちらも担当します。 インフラについては専属のチームがありますが、プロダクトを担当しているエンジニアと相談しながらインフラ設計が行われることが多く、インフラについての知識がなくても…
はじめに 広くはこちらの続き vermeer.hatenablog.jp Interfaceのdefaultでやろうと思って、やっぱりやめたというのを、やっぱりやってみたという感じです。 先に断っておきますが、以降はOOPLの話ではありません。 あくまで Javaの言語仕様で実現できる実装パターンの話です。 一般的な批判 おそらく以下で紹介する実装は一般的に「推奨されない」ものです。 OOPLにおける「継承よりも委譲」に反しているためです。 また多重継承による継承パズルも良くないというのが一般的だと思います。 こちらの記事などを参考にされると良いと思います。 インターフェースのdefaultメ…
こんにちは。 ぼちぼち、新年度の足音が聞こえてきますね。さて、タイトルなんですが、前からずっともやもやしてることです。 別にFacadeパターンをやめろとか名前を変えろとかそういう話じゃないんですが、なんか自分の思うファサードとちょっと違うんだよなって思ってる話。 ファサードってなんだ ja.wikipedia.org例によってWikipediaを見ていくんですが、「建築物正面のデザインを指す語句」とあります。 建築においての「正面」は基本的に町(都市)や街路に対しての正面と解釈するのが良いかと思います。 複数面のファサードを持つ場合もありますし、極端な地下に埋まっている構造物のようにファサー…
\💖ホワイトデー企画💖デジタルギフトが抽選で1000名様に当たる✨/アンケー党から ちょっとうれしい ホワイトデーギフトをおすそ分け♡マクロミルモニタ登録 + @macromill_enqをフォロー + この投稿をリポスト!Myページ内のお知らせからアクセスしてその場で抽選結果をチェック!… pic.twitter.com/goF4Adadxk— 【マクロミル】アンケー党 (@macromill_enq) 2024年3月12日 https://x.com/macromill_enq/status/1767399813308702936?t=wWgnz3xOeShRn6LpeVXjWw&s=09
$1290プラスになりました。 現在の所有株 1. SPY 10株. $4050.00 → $5071.80 2. SCM 140株. $1989.40 → $1815.80 3. ABR 40株 $590.40 →$510.00 4. ARCC 30株 $583.50 → $606.90 5. ET 100株 $1297.50 → $1502.00 6. GOF 75株 $1153.50 → $1078.00 7. PXD 9.98株 $2101.43 → $2371.79 8. TSLY 20株 $226.60 → $344.20 9. IWMY 10株 $189.40 → $172.00…
第5回「オブジェクト指向のこころ」読書会に参加しました! オブジェクト指向のこころを読む会 Vol.5 今日やったこと 先週アレグザンダーの建築クイズに時間を使ってしまい、応用問題について扱うことができなかったので、第5章の応用問題について皆で話すところから話し始め、その後第六章と七章の問題を皆で話しました 第五章 応用問題 「慣れすぎてしまうことで、明らかなものを見失ってしまうことがあります」パターンを使うことでなぜこの様なことが避けられるのでしょうか 話したこと * パターンを適応することに熱心になってしまうと、杓子定規にパターンを適用することに躍起になってしまい、ここでいう「慣れすぎてし…
yr-camp.connpass.com こちらのイベントに参加してきたので、会の様子と感想を書いていこうと思います。 会の概要 会の様子 第5章の問題を解く 応用問題1 応用問題2 応用問題3 応用問題4 応用問題5 第6章と第7章の応用問題 facadeパターンを現実世界で例えると?(応用問題2) adapterパターンを現実世界で例えると?(応用問題2) 会全体を通した感想 会の概要 オブジェクト指向のこころを読んでいく会です。今回は第6章と第7章を読んでいきました。 会の様子 第5章の問題を解く 前回はNOOの話で盛り上がりすぎて問題を解けなかったので、今回は問題を解いていくところから…
損益が$771.37プラスになっています。 現在の所有株 1. SPY 10株. $4050.00 → $4983.20 2. SCM 140株. $1989.40 → $1783.60 3. ABR 40株 $590.40 →$484.80 4. ARCC 30株 $583.50 → $600.30 5. ET 100株 $1297.50 → $1391.00 6. GOF 75株 $1153.50 → $1035.75 7. PXD 9.98株 $2101.43 → $2316.90 8. TSLY 20株 $226.60 → $175.00 9. IWMY 10株 $189.40 → $…
本記事では令和6年春向けのシステムアーキテクトの 出題予想を行っています。 勉強をそれなりにしてきた人であれば、 「どの範囲が出やすいんだろう?」と気になっていたり、 これまであまりうまく勉強時間が確保できていない人は、 「残りの時間、何に対策すればいいんだろう?」と思っていたりしませんか。 本記事では、次回ITストラテジストを受験される方向けに、 出題にはどのような傾向があるんだろう? 次回にはどのような問題が出題される可能性があるのかな? で、それらを午前問題、午後問題(記述・論文)について知りたい! といった疑問・要望にお答えしたいと思います。 なお、過去問は試験センターからダウンロード…
こんにちはswampです。 今年もRegional Scrum Gathering Tokyo 2024 に参加してきました。アジャイルマインドあふれる空間で色々な方とお話しできてとても楽しかったです。 3部構成で私がRSGT2023に参加した感想と私が聴講した各セッションの簡単なレポートをお届けできればと思います。 Regional Scrum Gathering Tokyo 2024 Day1 参加記録 Regional Scrum Gathering Tokyo 2024 Day2, Day3 参加記録 (この記事) Regional Scrum Gathering Tokyo 2024…
はじめに 変更しやすいコードが書けないのにソフトウェア開発とか舐めているのですか 天使様、ごめんなさい〜、nikkieです1。 「かわいい」と技術書が夢の合体を果たした、ちょうぜつ本(『ちょうぜつソフトウェア設計入門』2)!🤗 昨年から読書会を共同主催しており、現在は第8章「デザインパターン」を読み進めています。 直近読んだ範囲から、Compositeを取り上げます。 目次 はじめに 目次 前回のちょうぜつ本! Compositeパターン サンプルコードを動かしていく! 例の木構造を再現しよう クラスのプロパティはどう初期化されるの? Pythonで写経したコード 結城先生本より、複数と単数の…
デザインパターンの説明はどれか。 Javaなどのプログラム言語に依存した,コーディングの定石やノウハウを集めたものである。 再利用性や柔軟性の高いプログラムを設計するために,参考となるオブジェクトの組合せ方をパターンとして分類したものであり,代表的なパターン集としてGoFパターンがある。 ソフトウェアの開発方法をパターン集としてまとめたものであり,組織編成や開発管理のためのパターンがある。 ソフトウェアの基本構造を設計するためのパターンであり,その一つとしてMVCパターンがある。 解答・解説 (adsbygoogle = window.adsbygoogle || []).push({}); …
ソフトウェアパターンのうち,GoFのデザインパターンの説明はどれか。 Javaのパターンとして引数オブジェクト,オブジェクトの可変性などで構成される。 オブジェクト指向開発のためのパターンとして生成,構造,振る舞いの三つのカテゴリに分類される。 構造,分散システム,対話型システム及び適合型システムの四つのカテゴリに分類される。 抽象度が異なる要素を分割して階層化するためのLayers,コンポーネント分割のためのBrokerなどで構成される。 解答・解説 (adsbygoogle = window.adsbygoogle || []).push({}); 解答 イ 解説 Javaのパターンとして…
こちらの論文で挙げられている方法を検討した。 www.ncbi.nlm.nih.gov Weiss, B.A. and Dardick, W. (2016) ‘An Entropy-Based Measure for Assessing Fuzziness in Logistic Regression’, Educational and Psychological Measurement, 76(6), pp. 986–1004. Available at: https://doi.org/10.1177/0013164415623820. 二項ロジスティック回帰分析の推定 例題として使うので…
2024/01/09から2024/01/12に開催されたRegional Scrum Gathering Tokyo 2024(以下、RSGT2024)のスライドまとめです。 2024.scrumgatheringtokyo.org 本ブログでは、RSGT2024のセッションの発表資料をまとめています。 個人で発見した発表資料のみですので、掲載していないセッションの発表資料がありましたら、コメント欄などで教えていただけるとさいわいです。 0日目 18:40からのセッション ツナガル。ヒロガル。旅がハジマル。 ツナガル。ヒロガル。旅がハジマル。 - Speaker Deck 19:00からのセッ…