クラスの連携 つづき |
|
クラスの連携のまとめ(システム(プロジェクト)の作り方) |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
クラスの連携のまとめ。
このパートで見てきた
システム(プロジェクト)の
作り方をまとめたよ。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
お子様は
元気ねー |
 |
|
 |
まとめるぞー!
おー! |
|
|
|
 |
|
 |
|
システム(プロジェクト)の作り方 |
|
作り方の流れ |
1、システムの概要を作る(全体、個別) |
2、システムの詳細を作る(全体、個別) |
|
|
作り方のポイント |
作る物を大きな塊に分けて、それを小さくに分割していく。 |
作る物を細かく書き出して、それを大きな塊にグルーピングする。 |
|
|
設計のポイント |
シンプルにする。 |
機能のバランスを考える。 |
|
|
|
|
 |
|
 |
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
作り方の流れを、
おさらいしておくよ。
まずは
システムの概要を作ろう。
まずは全体像を考えよう。
システムには
・どんなオブジェクトが必要か
・どんな機能(メソッド)が必要か
・どんな連携で動くか
・機能をクラスにするか
メソッドにするか
・・・
プロジェクト(システム)の目的に
合う設計をいろいろ考えてみよう。
オブジェクトのタイプと絡めて
思いつくことを列挙してね。
その後に
クラス個別の内容を考えよう。
つながりや連携、ある程度
内容を固めよう。 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
 |
つまり、
概要ね。 |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
今回の場合だと
工場の全体像と
クラスを個別に
考えたところだね。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
 |
|
 |
|
システム(プロジェクト)の作り方 |
|
作り方の流れ |
1、システムの概要を作る(全体、個別) |
2、システムの詳細を作る(全体、個別) |
|
|
作り方のポイント |
作る物を大きな塊に分けて、それを小さくに分割していく |
作る物を細かく書き出して、それを大きな塊にグルーピングする |
|
|
設計の仕方のポイント |
シンプルにする。 |
機能のバランスを考える。 |
|
|
|
|
 |
|
 |
|
|
つまり、
詳細ね。 |
 |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
それから、
システムの詳細を作ろう。
全体像で書き出した
オブジェクトをもっと詳細に
作り込んでいこう。
これも、クラス全体(連携)と
クラス個別に分けて、
徐々に詰めていこう。
いろいろ試行錯誤してね。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
今回の場合だと
「メイン工場 x」とか
具体的な内容を書いて
いった部分だね。 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
 |
いろいろ
作ったねー。 |
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
こんな風に、システムの概要と
詳細の設計をして設計内容を
柔軟に詰めていこう。
詳しい事は今後プログラムを
作りながら見るからね。
これも1つの作り方。
徐々に自分の作り方を固めて
いこうぜ。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
はいっ。
プログラムの作り方と
同じで徐々に内容を
作っていくんだね。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
えっと・・・
どーか、変なこと
言い出しません
ように。 |
 |
|
 |
プログラム
早く作りたいな。 |
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
それから、
今回の作り方のポイントは2つ。
1つ目は、
作る「物」をざっくり大きな塊に分けて、
そこから細かくして考える。
機能や目的で大きく分けてから
詳細を考えるんだ。
2つ目は、逆に
作る「物」の内容を細かく列挙して、
それを機能や目的でグループ分け
して大きな塊にする。
いろいろ組み替えたりしてね。
この2つを繰り返しながら、
徐々に内容を固めて設計していこう。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
なるほど。
確かに今日の作り方は
プロジェクトの作業内容の
細かい流れを書き出してから、
それを処理別に大きな分類に
分けたりしてたね。
それがメソッドになって・・・
クラスになって・・・
機能を大きく考えたり
小さく考えたり繰り返して
良い設計のバランスを
見つけるんだ。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
焦らないでね。
こんなの
繰り返しの
「慣れ」だから。 |
 |
|
 |
はいっ。
難しいけど
がんばるぞ。 |
|
|
|
 |
|
 |
|
システム(プロジェクト)の作り方 |
|
作り方の流れ |
1、システムの概要を作る(全体、個別) |
2、システムの詳細を作る(全体、個別) |
|
|
作り方のポイント |
作る物を大きな塊に分けて、それを小さくに分割していく |
作る物を細かく書き出して、それを大きな塊にグルーピングする |
|
|
設計のポイント |
シンプルにする。 |
機能のバランスを考える。 |
|
|
|
|
 |
|
 |
|
|
パズルみたいな
感じで楽しんで
やろー!
おー |
 |
|
 |
いいね!
そんな感じで
気楽にいこー
おー |
|
|
次はパズル
作るぞー!
おー |
 |
|
 |
おー・・・
違うからっ!! |
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
システムを設計をする時は
「複雑な大きい物を1つ」で作らないで
「シンプルで小さな物の組み合わせ」
で作るように心がけよう。
クラスやメソッドで
機能のバランスを考えながらね。
考え方は、今までと一緒。
「読みやすいコードを書くように
心がける。」ってヤツね。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
シンプル イズ ベストね!
ごちゃごちゃしないように
心がけるんだね。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
まあ、初心者は
「でかくて複雑なの1つ」
から始めるんだけどねー。
これも、徐々にねー |
 |
|
 |
徐々にね。 |
|
|
|
 |
|
 |
|
システム(プロジェクト)の作り方 |
|
作り方の流れ |
1、システムの概要を作る(全体、個別) |
2、システムの詳細を作る(全体、個別) |
|
|
作り方のポイント |
作る物を大きな塊に分けて、それを小さくに分割していく |
作る物を細かく書き出して、それを大きな塊にグルーピングする |
|
|
設計のポイント |
シンプルにする。 |
機能のバランスを考える。 |
|
|
|
|
 |
|
 |
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
ちなみに
このパートでは説明上、
「設計」と「開発」を少し
ごっちゃまぜに
やっちゃいました。
あははー
後で整理するから
気にしないでー。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
ごめんね!
仕様やコーディング
のこととかも
ねじ込んじゃったの。
・・・だめ? |
 |
|
 |
区別でき
なかったから
いいでーす。 |
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
以上!
クラスの連携
全部おしまい!
この工場を使った例は
次回のセッションでも
使うからね。
覚えておいてね。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
お疲れさん
ですた。
でも、まだ
セッションは
終わりじゃないの。 |
 |
|
 |
あー、ゲーム
作りたくなってきた!
早く作りたいー |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
大きなものから小さく分割したり
小さいものをグルーピングして
大きくしたり・・・
慣れが必要だけど
考え方自体は難しくないだろ?
誰でも普通にやってること。
そして、このやり方は
プログラムの場合も同じ。 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
 |
使いこなすのは
難しいけどね。
単純なものほど
難しいーってね。
ウヒヒ |
|
もおー
なんか
いじわるー |
 |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
今日の作り方は
分かった気が
するけど・・・
うーん。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
うーん・・・
でも、やっぱり難しいー。
なんとなくは分かるけど。
分かったような無いような。 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
 |
雲を掴む感じ。 |
|
焦らないでね。
実際に作れば
分かるから。
ほんと
しつこいけど。。。 |
 |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
今回はそれで十分。
これから繰り返し
やるからね。
これからは
クラスの設計について
ずっと意識していくことに
なる。
だんだんイメージが
はっきりしてくるよ。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
最後に、
オブジェクト指向
とは何か、今回の
セッションをまとめよう。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
これで
本当に?
終わりー。 |
 |
|
 |
らすと
すぱーと! |
|
|
|
 |
|
 |
|
オブジェクト指向って何? |
|
|
|
・クラスとは |
・クラスの概要 |
・クラスの詳細 |
・クラスの連携 |
|
|
|
|
|
|
|
 |
|
 |
|
|