« 2008年06月29日 - 2008年07月05日 | メイン | 2008年07月13日 - 2008年07月19日 »
ふむ。配列やArrayListで持っていた
コレクションクラスもイテレータを返せば
忍法コレクションを追加しても楽だったお。
____
/ \
/ ─ ─\
/ (●) (●) \
| (__人__) |
/ ∩ノ ⊃ /
( \ / _ノ | |
.\ “ /__| |
\ /___ /
public void listAbilityCollection(){
// 潜在能力コレクションの取得・・・
// 魔法コレクションの取得・・・
Iterator ptntItr = potentialCollection.createIterator();
Iterator mgcItr = magicCollection.createIterator();
// コレクションを追加してもイテレータで受ける
Iterator nnpItr = ninpoCollection.createIterator();
listAbilityCollection( ptntItr );
listAbilityCollection( mgcItr );
listAbilityCollection( nnpItr );
・・・・
// イテレータでもらうので走査は1つ。
private void listAbilityCollection( Iterator itr ){
while( itr.hasNext() ){
AbilityItem abiItem = (AbilityItem)itr.next();
System.out.println( abiItem.getName() );
System.out.println( abiItem.getDescription() );
System.out.println( abiItem.getEffectiveValue() );
}
}
保守、維持管理ばっか気にして
ごちゃごちゃうるさいだけの
オトコかと思ってたけど見習うとこもあるお
____
/ \
/ ─ ─\
/ (●) (●) \
| (__人__) |
/ ∩ノ ⊃ /
( \ / _ノ | |
.\ “ /__| |
\ /___ /
/ ̄ ̄\ やる夫、今回の件でまた仕様変更だ。
/ _ノ \
| ( ●)(●)l
. | (__人__) |
| ` ⌒´ |
. | }
. ヽ }
ヽ ノ
/ く
/ ヽ
____
/ \ やっぱ全然見習えないお。
/ ─ ─\
/ (○) (○) \
| (__人__) |
/ ∩ノ ⊃ /
( \ / _ノ | |
.\ “ /__| |
\ /___ /
listAbilityCollectionを3回も呼び出しているところは
1つにまとめたい。
結果から言うと各Collectionそのものも
リストで保持したい。できるか?
/ ̄ ̄\ ・・・・。
/ \ ___
|:::::: | / \
. |::::::::::: | /⌒ ⌒ \
|:::::::::::::: | / (●) (●) \
. |:::::::::::::: } | (__人__) |
. ヽ:::::::::::::: } \ ` ⌒´ _/
ヽ:::::::::: ノ | \
/:::::::::::: く | | | |
-―――――|:::::::::::::::: \――┴┴―――――┴┴――
public class AbilityMgr {
ArrayList abilities;
// コレクションクラスが入ったArrayListでもらう。
public AbilityMgr( ArrayList abilities ){
this.abilities = abilities;
}
// ArrayListを展開してコレクションを受けて走査する
public void listAbilityCollection(){
Iterator abilitiesItr = abilities.iterator();
while( abilitiesItr.hasNext() ){
Collection collection = (Collection)abilitiesItr.next();
listAbilityCollection( collection.createIterator() );
}
}
// 変更なし。
private void listAbilityCollection( Iterator itr ){
while( itr.hasNext() ){
AbilityItem abiItem = (AbilityItem)itr.next();
System.out.println( abiItem.getName() );
System.out.println( abiItem.getDescription() );
System.out.println( abiItem.getEffectiveValue() );
}
}
}
意外とかんたんだお。潜在能力でも
魔法でも忍法でもArrayListにつっこめお。
展開してイテレータで走査すればいいお。
___
/ ⌒ ⌒\
/ (●) (●) \
/ ///(__人__)/// \
| u. `Y⌒y'´ |
\ ゙ー ′ ,/
/⌒ヽ ー‐ ィヽ
/ rー'ゝ 〆ヽ
/,ノヾ ,> ヾ_ノ,|
| ヽ〆 |´ |
/ ̄ ̄\
/ _ノ \ で、だ。
| ( ●)(●)
. | (__人__)
| ` ⌒´ノ
. | }
. ヽ }
ヽ ノ
/ く
| \
| |ヽ、二⌒)
____
/ ノ \\ で?で?っていう?で?なんだお。
/ (○) (○)\ まだあんのかお。
/ ∪ (__人__) \
| ` ⌒´ |
\ /⌒)⌒)⌒) //⌒)⌒)⌒)
ノ | / / / (⌒) / / / /
/´ | :::::::::::(⌒) ゝ :::::::::::/
| l | ノ / ) /
ヽ ヽ_ヽ /' / /
ヽ __ / / /
コレクションにもさらにネストして
コレクションを持たせたい。
これは、忍法・魔法・潜在能力コレクションの属性が
リストである必要がでてきたからだ。
具体的に言うと、
name:火遁の術
description:炎でダメージを与える。
effect:延焼
attribute:<ここにコレクションで属性を持つ>
という変更だ。
attributeには火遁の術に対する
拡張属性がコレクションで投入されることになる。
/ ̄ ̄\
/ \
|:::::: |
. |::::::::::: |
|:::::::::::::: | ....,:::´, .
. |:::::::::::::: } ....:::,, ..
. ヽ:::::::::::::: } ,):::::::ノ .
ヽ:::::::::: ノ (:::::ソ: .
/:::::::::::: く ,ふ´..
-―――――|:::::::::::::::: \ -―,――ノ::ノ――
|:::::::::::::::|ヽ、二⌒)━~~'´
____
/ \ 会社辞めます。
/ ─ ─\
/ (●) (●) \
| (__人__) |
\ ` ⌒´ /
,,.....イ.ヽヽ、___ ーーノ゙-、.
: | '; \_____ ノ.| ヽ i
| \/゙(__)\,| i |
> ヽ. ハ | ||
/ ̄ ̄\
/ _ノ \ めずらしくスーツ着てると思ったら
| ( ○)(○)l そうきたか。
. | (__人__) |
| ` ⌒´ |
. | }
. ヽ }
ヽ ノ
/ く
/ ヽ
てってってってっ てん。
てんしょっく。てんしょっくだおー。
かいしゃ、かいしゃ、やっめるおー。
でっでっでっでっ でっていうー。
____
/ ― -\
ミ ミ ミ / (○) (○) ミ ミ ミ
/⌒)⌒)⌒. (__人__) \ /⌒)⌒)⌒) つ
| / / / ` ⌒´ | (⌒)/ / / //
| :::::::::::(⌒) / ゝ :::::::::::/
| ノ \ / ) /
ヽ / ヽ/ /
| | l||l 从人 l||l l||l 从人 l||l
ヽ -一''''''"~~``'ー--、 -一'''''''ー-、
ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
(・・・派手に壊れてきてやがるな。)
いいだろう。今回の案件を最後に
やる夫で学ぶデザインパターンを終了にしてやる。
(最近ロトとかにも手を出し始めたしな)
まだまだデザインパターンはいくつもあるが、
今回のコンポジットパターンを覚えたら
あとは自分でやるんだ。もうひとり立ちできるだろう。
/ ̄ ̄\
/ _ノ \
| ( ○)(○)l
. | (__人__) |
| ` ⌒´ |
. | }
. ヽ }
ヽ ノ
/ く
/ ヽ
ひっひっひっ とりだちー。
____
/ ― ― \
ミ ミ ミ / (○) (○) \ ミ ミ ミ
/⌒)⌒)⌒. (__人__) \ /⌒)⌒)⌒)
| / / / ` ⌒´ | (⌒)/ / / //
| :::::::::::(⌒) / ゝ :::::::::::/
| ノ \ / ) /
ヽ / ヽ/ /
| | l||l 从人 l||l l||l 从人 l||l
ヽ -一''''''"~~``'ー--、 -一'''''''ー-、
ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
結構ストレス抱えてやがったのか。
こいつが居室でしょんべんした頃が懐かしいな・・。
/ ̄ ̄\
/ _ノ \
| ( ●)(●)l
. | (__人__) |
| ` ⌒´ |
. | }
. ヽ }
ヽ ノ
/ く
/ ヽ
/ ̄ ̄\
/ \ しばらく休ませてみるか・・・。
|:::::: |
. |::::::::::: |
|:::::::::::::: | ....,:::´, .
. |:::::::::::::: } ....:::,, ..
. ヽ:::::::::::::: } ,):::::::ノ .
ヽ:::::::::: ノ (:::::ソ: .
/:::::::::::: く ,ふ´..
-―――――|:::::::::::::::: \ -―,――ノ::ノ――
|:::::::::::::::|ヽ、二⌒)━~~'´