Builder Pattern S. Yukita Builder Pattern2 Builder パターン 使われ所 大きなインスタンスを組み上げる場合。 インスタンスの組み上げにパターンが あるとき,パターンをディレクタに固 定する。 組み上げパターンに従って実際の仕事.

Slides:



Advertisements
Similar presentations
Giving and Receiving Gifts Chapter 15 のぶんぽう. Giving and Receiving Gifts Giving and receiving gifts is a very important custom in Japan. As such, it is.
Advertisements

Builder と Abstract Factory S. Yukita
AIR マスターへの 抜け道!? ~といいつつ王道話です~ 平成 20 年 2 月 6 日 図書系のための アプリケーション開発講習会.
SPSSによるHosmer-Lemeshow検定について
東京工科大学 コンピュータサイエンス 亀田弘之
9.線形写像.
時間的に変化する信号. 普通の正弦波 は豊富な情報を含んでいません これだけではラジオのような複雑な情報 を送れない 振幅 a あるいは角速度 ω を時間的に変化 させて情報を送る.
九州大学 岡村研究室 久保 貴哉 1. 利用中のAPの数の推移 2 横軸:時刻 縦軸:接続要求数 ・深夜では一分間で平均一台、 昼間では平均14台程度の接続 要求をAPが受けている。 ・急にAPの利用者数が増えてく るのは7~8時あたり.
5.連立一次方程式.
相関.
つくばだいがくについて 芸術専門学群のこと. 筑波大学ってこんなところ 東京教育大学を前身とする大学で、その 創立は日本で最も古い大学のひとつ。 大学の敷地面積は日本で二番目に広い大 学で、やたら坂が多い。移動時間が15分 しかないのに上り坂を三つ超えることがよ くある。
音当て Game 時田 大樹 飛山 雄太郎. 作品の目的 入力として、スイッチを押すと音がスピー カーから流れ、スイッチを離すと、音が止 まる仕組みとなっている。
ノイズ. 雑音とも呼ばれる。(音でなくても、雑 音という) 入力データに含まれる、本来ほしくない 成分.
広告付き価格サービ ス 小園一正. はじめに 世の中には様々な表現方法の広告があり ます。その中でも私たち学生にとって身 近にあるものを広告媒体として取り入れ られている。 価格サービス(無料配布のルーズリー フ)を体験したことにより興味を惹かれ るきっかけとなった。主な目的は、これ.
素数判定法 2011/6/20.
フーリエ係数の性質. どこまで足す? 理想的には無限大であるが、実際に はそれは出来ない これをフーリエ解析してみる.
1章 行列と行列式.
本宮市立白岩小学校. 1 はじめに 2 家庭学習プログラム開発の視点 ① 先行学習(予習)を生かした 確かな学力を形成する授業づく り ② 家庭との連携を図った家庭学習の習慣化.
フーリエ級数. 一般的な波はこのように表せる a,b をフーリエ級数とい う 比率:
プログラミング入門2 第4回 式文 代入式 論理演算子 ループの脱出、スキップ 情報工学科 篠埜 功.
3.エントロピーの性質と各種情報量.
Excelによる積分.
計算のスピードアップ コンピュータでも、sin、cosの計算は大変です 足し算、引き算、掛け算、割り算は早いです
1 0章 数学基礎. 2 ( 定義)集合 集合については、 3セメスタ開講の「離散数学」で詳しく扱う。 集合 大学では、高校より厳密に議論を行う。そのために、議論の 対象を明確にする必要がある。 ある “ もの ” (基本的な対象、概念)の集まりを、 集合という。 集合に含まれる “ もの ” を、集合の要素または元という。
1 0章 数学基礎. 2 ( 定義)集合 集合については、 3セメスタ開講の「離散数学」で詳しく扱う。 集合 大学では、高校より厳密に議論を行う。そのために、議論の 対象を明確にする必要がある。 ある “ もの ” (基本的な対象、概念)の集まりを、 集合という。 集合に含まれる “ もの ” を、集合の要素または元という。
信号測定. 正弦波 多くの場合正弦波は 0V の上下で振動する しかし、これでは AD 変換器に入れら れないので、オフ セットを調整して データを取った.
1 9.線形写像. 2 ここでは、行列の積によって、写像を 定義できることをみていく。 また、行列の積によって定義される写 像の性質を調べていく。
通信路(7章).
ビット. 十進数と二進数 十進数  0から9までの数字を使って 0、1、2、3、4、5、6、7、8、9、 10、11、12 と数える 二進数  0と1を使って 0、1、10、11、100、101、11 0、111 と数える.
結城諒 司 吉田成 樹 完成予定図 O N! 7セグLE D ランダム表 示 OF F ? 数字が出たら 勝ち!!
3.正方行列(単位行列、逆行列、対称行列、交代行列)
伝わるスライド 中野研究室 M2 石川 雅 信. どのようなスライドを作れば良 いか 伝えたいこと.
JPN 312 (Fall 2007): Conversation and Composition Contraction (2); 意見を言う (to express your opinion)
SUPJ2010 Japanese Ⅱ( A ) Elementary Japanes e ‐ in twenty hours- Chapter 7.
Three-Year Course Orientation International Course.
JPN 311: Conversation and Composition 勧誘 (invitation)
JPN 311: Conversation and Composition 伝言 (relaying a message)
JPN 311: Conversation and Composition 許可 (permission)
JPN 312 (Fall 2007): Conversation and Composition Contracted Forms.
地図に親しむ 「しゅくしゃくのちがう 地図を 使ってきょりを調べよ う1」 小学4年 社会. 山口駅裁判所 県立 美術館 サビエル 記念聖堂 山口市役所 地図で探そう 市民会館 県立 図書館.
方程式を「算木」で 解いてみよう! 愛媛大学 教育学部 平田 浩一.
C言語応用 構造体.
JPN 312 (Fall 2007): Conversation and Composition 文句 ( もんく ) を言う.
Elementary Japanese ‐in twenty hours- Chapter 9
地図に親しむ 「じっさいのけしきと 地図をくらべよう」
「ネット社会の歩き方」レッスンキット プレゼンテーション資料集 15. チャットで個人情報は 言わない プレゼンテーション資料 著作権は独立行政法人情報処理推進機構( IPA )及び経済産業省に帰属します。
SUPJ1020 Japanese Ⅰ( B ) Elementary Japanes e ‐ in twenty hours- Chapter 1.
プログラミング入門2 第3回 複合文、繰り返し 情報工学科 篠埜 功.
リファクタリング支援のための コードクローンに含まれる識別子の変更内容分析 井上研究室 工藤 良介 1.
図書館の使い方 webペー ジ企画 グループ:いよかん メンバー: c07133 c クライアント情報  情報大学図書館の使い方  学生や学外からの来館者向け.
タイピングゲー ム ~坂井 D 班の発表~ ~坂井 D 班の発表~. メンバー  村本 晟弥  岡本 武士  若松 健人.
SUPJ2010 Japanese Ⅱ( A ) Elementary Japanes e ‐ in twenty hours- Review of Japanese Ⅰ (B)
Hiragana dan Katakana Hiragana dan Katakana Pertemuan 1 Matakuliah: N Bahasa Jepang l (Nihongo I) Tahun: 2008.
LANG3910 Japanese Ⅲ Lesson 14 依頼・現在進行形. 学習項目 1. 「て -form 」 2. 依頼表現 An expression of request 3. 相手の意向を尋ねる Ask someone’s mind 4. 現在進行形 Actions in Progress.
Exercise IV-A p.164. What did they say? 何と言ってましたか。 1.I’m busy this month. 2.I’m busy next month, too. 3.I’m going shopping tomorrow. 4.I live in Kyoto.
音の変化を視覚化する サウンドプレイヤーの作成
HCC Hair Color Change. メンバー ソ 渋谷麻美 ソ 渋谷麻美 ソ 清野理衣子 ソ 清野理衣子 ソ 三上貴大 ソ 三上貴大.
Self-efficacy(自己効力感)について
本文. 考えながら読みましょ う 「いろいろなこと」( 3 行目)は何で すか 「①電話料金はコンビニで支払いをしていま す。いつでも払えますから、便利です。」 「②夕食はコンビニで買います。お弁当やお かずがいろいろありますから。」今、若者に 人気のあるコンビニは、いろいろなことをす るのに非常に便利な場所になった。
日本語一 1月 7 日 New Year’s Greetings : E b0.
たくさんの人がいっしょに乗れる乗り物を 「公共交通」といいます バスや電車 と 自動車 の よいところ と よくない ところ よいところ と よくない ところ を考えてみよう!
日本語きほん文法の復習 Basic Japanese Grammar Review
Factory Method Pattern S. Yukita
と. What does it mean???? ビールを 飲むと ねむく なりま す 四月に なると さくらが さきま す たばこを すうと からだに わる いです.
Useful daily expressions
日本語1 2月12日 愛 あい. みっきーは みにーを あいしてい ます。 ほーまーは まーじを あいしてい ます。
2015/11/19. To foster Historical Thinking Skill by Creating Story Necessary Relationships and Elements of Characters In historical learning, historical.
Jeopardy KatakanaAdverbsParticles Q $100 Q $200 Q $300 Q $400 Q $500 Q $100 Q $200 Q $300 Q $400 Q $500 Final Jeopardy Vocabular y Translations.
RELATIVE CLAUSES Adjectival Clauses/Modifiers. RELATIVE CLAUSES A relative clause is the part of a sentence which describes a noun Eg. The cake (which)
雪 ゆき. 雪や こんこ ゆき.
Presentation transcript:

Builder Pattern S. Yukita

Builder Pattern2 Builder パターン 使われ所 大きなインスタンスを組み上げる場合。 インスタンスの組み上げにパターンが あるとき,パターンをディレクタに固 定する。 組み上げパターンに従って実際の仕事 をするのは Builder インタフェース(抽 象クラス)を実装(具象化)するクラ ス。

Builder Pattern3 例題のクラス図例題のクラス図 Main Director builder construct Builder makeTitle makeString makeItems getResult TextBuilder makeTitle makeString makeItems getResult HTMLBuilder makeTitle makeString makeItems getResult uses

Builder Pattern4 Builder.java public abstract class Builder { public abstract void makeTitle(String title); public abstract void makeString(String str); public abstract void makeItems(String[] items); public abstract Object getResult(); }

Builder Pattern5 TextBuilder.java (1) public class TextBuilder extends Builder { private StringBuffer buffer = new StringBuffer(); public void makeTitle(String title) { buffer.append("==============================\n"); buffer.append(" 『 " + title + " 』 \n"); buffer.append("\n"); }

Builder Pattern6 TextBuilder.java (2) public void makeString(String str) { buffer.append(' ■ ' + str + "\n"); buffer.append("\n"); }

Builder Pattern7 TextBuilder.java (3) public void makeItems(String[] items) { for (int i = 0; i < items.length; i++) { buffer.append(" ・ " + items[i] + "\n"); } buffer.append("\n"); }

Builder Pattern8 TextBuilder.java (4) public Object getResult() { buffer.append("==============================\n"); return buffer.toString(); }

Builder Pattern9 HTMLBuilder.java (1) import java.io.*; public class HTMLBuilder extends Builder { private String filename; private PrintWriter writer;

Builder Pattern10 HTMLBuilder.java (2) public void makeTitle(String title) { filename = title + ".html"; try { writer = new PrintWriter(new FileWriter(filename)); } catch (IOException e) { e.printStackTrace(); } writer.println( " " + title + " "); writer.println(" " + title + " "); }

Builder Pattern11 HTMLBuilder.java (3) public void makeString(String str) { writer.println(" " + str + " "); } public void makeItems(String[] items) { writer.println(" "); for (int i = 0; i < items.length; i++) { writer.println(" " + items[i] + " "); } writer.println(" "); }

Builder Pattern12 HTMLBuilder.java (4) public Object getResult() { writer.println(" "); writer.close(); return filename; }

Builder Pattern13 Director.java (1) public class Director { private Builder builder; public Director(Builder builder) { this.builder = builder; }

Builder Pattern14 Director.java (2) public Object construct() { builder.makeTitle("Greeting"); builder.makeString(" 朝から昼にかけて "); builder.makeItems(new String[]{ " おはようございます。 ", " こんにちは。 " }); builder.makeString(" 夜に "); builder.makeItems(new String[]{ " こんばんは。 ", " おやすみなさい。 ", " さようなら。 " }); return builder.getResult(); }

Builder Pattern15 Main.java (1) public class Main { public static void main(String[] args) { if (args.length != 1) { usage(); System.exit(0); }

Builder Pattern16 Main.java (2) if (args[0].equals("plain")) { Director director = new Director( new TextBuilder()); String result = (String)director.construct(); System.out.println(result); } else if (args[0].equals("html")) { Director director = new Director( new HTMLBuilder()); String filename = (String)director.construct(); System.out.println(filename + " が作成されました。 "); } else { usage(); System.exit(0); } }

Builder Pattern17 Main.java (3) public static void usage() { System.out.println( "Usage: java Main plain プレーンテキストで文書作成 "); System.out.println( "Usage: java Main html HTML ファイルで文書作成 "); }

Builder Pattern18 実行結果 (plain) java Main plain ================================= [Greeting] ■ 朝から昼にかけて ・おはようございます。 ・こんにちは。 ■ 夜に ・こんばんは。 ・おやすみなさい。 ・さようなら。 =================================

Builder Pattern19 実行結果 (HTML) java Main html Greeting.html が作成されました。 Greeting 朝から昼にかけて おはようございます。 こんにちは。 夜にかけて こんばんは。 おやすみなさい。 さようなら。

Builder Pattern20 パターン Client Director builder construct Builder buildPart1 buildPart2 buildPart3 getResult ConcreteBuilder buildPart1 buildPart2 buildPart3 getResult uses

Builder Pattern21 Sequence 図 :Client:Director:ConcreteBuilder construct buildPart1