KICK THE DP

KICK THE CAN CREWでデザインパターンを攻略するブログ

このブログが本になりました!

一般販売と今後の更新の予定はありません。

Ch.23 KICK THE INTERPRETER

【目標】 Interpreterパターンを使って、"SWING TOGETHER マイナス W"を求めてみよう 【クラス図】 【実装】 <IExpressionインターフェース:AbstractExpression> ≪WordExpressionクラス:TerminalExpression≫ ≪MinusExpressionクラス:TerminalExpression…

Ch.22 KICK THE COMMAND

【目標】 COMMANDパターンを使って、KICK THE CAN CREWのベストアルバムをタイトル順にソートしたあと、履歴をたどって元に戻そう 【クラス図】 【シーケンス図】 【実装】 <ICommandインターフェース:Command> ≪Swapクラス:ConcreteCommand≫ ≪MacroSwap…

Ch.21 KICK THE PROXY

【目標】 Proxyパターンを使って、ギャラの安い仕事は神輿ロッカーズJr.に任せよう 【クラス図】 【実装】 <AbstractMikoshiRockers抽象クラス:Subject> ≪MikoshiRockersクラス:RealSubject≫ ≪MikoshiRockersJrクラス:Proxy≫ [Mainクラス:Client] 【…

Ch.20 KICK THE FLYWEIGHT

【目標】 FLYWEIGHTパターンを使って、アンバランスを ≠″ ャ 」レ 文字 イヒ ι ちゃ ぇ ☆ 【 勹 ラ ス 図】 【 ι″っξ ぅ 】 ≪GalCharacter 勹 ラ ス :Flyweight≫ ≪GalCharacterConverter勹 ラ ス :FlyweightFactory≫ [Main勹 ラ ス :Client] 【 ι ゅ ⊃ 丶) ょ < レ…

Ch.19 KICK THE STATE

【目標】 Stateパターンを使って、イッサイガッサイの1週間をやってみよう 【クラス図】 【実装】 <DayOfWeek抽象クラス:State> ≪Sundayクラス:ConcreteState≫ ≪Mondayクラス:ConcreteState≫ ~略~ ≪Tuesdayクラス:ConcreteState≫ ~略~ ≪Wednesday…

Ch.18 KICK THE MEMENTO

【目標】 Mementoパターンを使って、マルシェスロット的なことをやってみよう 【クラス図】 【実装】 ≪MarcheMemoryクラス:Memento≫ ≪MarcheSlotクラス:Originator≫ [Mainクラス:Caretaker] 【出力結果】 【メモ】 ・KICK関係ねぇし ・本来はGUIの操作…

Ch.17 KICK THE OBSERVER

【目標】 Observerパターンを使って、メンバーの活動休止とグループの活動休止をリンクさせよう 【クラス図】 【実装】 <IGroupインターフェース:Observer> <IMemberインターフェース> ≪Memberクラス:ConcreteSubject≫ ≪Groupクラス:ConcreteObserver…

Ch.16 KICK THE MEDIATOR

【目標】 Mediatorパターンを使ってTORIIIIIICO!のマイクパスをやってみよう 【クラス図】 【実装】 <IMicrophonePassインターフェース:Mediator> <MC抽象クラス:Colleague> ≪Krevaクラス:ConcreteColleague≫ ≪Mcuクラス:ConcreteColleague≫ ~略~ …

Ch.15 KICK THE FACADE

【目標】 Facadeパターンを使ってワーナーミュージックさんにKICK THE CAN CREWの新曲を作ってくれるようお願いしよう 【クラス図】 【実装】 ≪WarnerMusicクラス:Facade≫ ≪Krevaクラス:Class≫ ≪Mcuクラス:Class≫ ≪Littleクラス:Class≫ ≪Kumaiクラス:Cl…

Ch.14 KICK THE CHAIN OF RESPONSIBILITY

【目標】 Chain of Responsibilityクラスを使ってメンバーにソロ仕事を割り振ろう 【クラス図】 【実装】 <AbstractMember抽象クラス:Handler> ≪Memberクラス:ConcreteHandler≫ [Mainクラス:Client] 【出力結果】 【メモ】 ・little.JudgeOffer()だけ…

Ch.13 KICK THE VISITOR

【目標】 Ch.11でやった「KICK THE CAN CREWをHTMLでリスト表示しよう」をVisitorパターンで書き換えてみよう 【クラス図】 【実装】 <AbstractHtmlVisitor抽象クラス:Visitor> <HtmlFactor抽象クラス:Element> ≪TextValueクラス:ConcreteElement≫ ≪T…

Ch.12 KICK THE DECORATOR

【目標】 DECORATORパターンを使って、MCUが作曲や俳優の仕事ができるようにしよう。 【クラス図】 【実装】 <McuComponent抽象クラス:Component> ≪Mcuクラス:ConcreteComponent≫ <Ability抽象クラス:Decorator> ≪Composableクラス:ConcreteDecorato…

Ch.11 KICK THE COMPOSITE

【目標】 KICK THE CAN CREWをHTMLでリスト表示しよう 【クラス図】 【実装】 <HtmlFactor抽象クラス:Component> ≪TextValueクラス:Leaf≫ ≪Tagクラス:Composite≫ [Mainクラス:Client] 【出力結果】 【メモ】 ・お題としては悪くないがもはやKICK関係…

Ch.10 KICK THE STRATEGY

【目標】 Strategyパターンを使って、KICK THE CAN CREWの脳内VACATIONを覗いてみよう。 【クラス図】 【実装】 <VacationStyleインターフェース:Strategy> ≪KrevaStyleクラス:ConcreteStrategy≫ ≪McuStyleクラス:ConcreteStrategy≫ ≪LittleStyleクラス…

Ch.9 KICK THE BRIDGE

【目標】 Bridgeパターンを使って、ラッパーは歌ったってイーゼてなことを証明しよう。 【クラス図】 【実装】 <HumanBase抽象クラス:Abstraction>(機能側の最上位のクラス) ≪Rapperクラス:RefinedAbstraction≫(機能を追加した機能側の下位のクラス)…

Ch.8 KICK THE ABSTRACT FACTORY

【目標】 Abstract Factoryパターンを使って、「BREAK3」をやってみよう 【クラス図】 【実装】 <AbstractRapper抽象クラス:AbstractFactory> <Track抽象クラス:AbstractProduct> <Lyric抽象クラス:AbstractProduct> ≪Mcuクラス:CocreteFactory≫ ≪…

Ch.7 KICK THE BUILDER

【目標】 Builderパターンを使って、「もしもリトルが〇〇だったら」をやってみよう 【クラス図】 【シーケンス図】 【実装】 <Little抽象クラス:Builder> ≪Moshimoクラス:Director≫ ≪Manクラス:ConcreteBuilder≫ ≪Indianクラス:ConcreteBuilder≫ ≪Rap…

Ch.6 KICK THE PROTOTYPE

【目標】 Prototypeパターンを使って、Sayonara Sayonaraのバックトラックからいろんなバージョンを作ろう 【クラス図】 【実装】 ≪SayonaraSayonaraクラス:Prototype≫ [Mainクラス:Client] 【出力結果】 【メモ】 ・public object Clone() { return Mem…

Ch.5 KICK THE SINGLETON

【目標】 Singletonパターンを使って本当に最高はひとつじゃないのか検証しよう 【クラス図】 【実装】 ≪Singletonクラス:Singleton≫ [Mainクラス] 【出力結果】 【メモ】 ・使用機会は限りなくありそうなので積極的に使っていこう

Ch.4 KICK THE FACTORY METHOD

【目標】 Factory Methodパターンを使って、ヒップホップとR&Bの曲を作ろう 【クラス図】 【実装】 <Song抽象クラス:Product> <Project抽象クラス:Creator> ≪HipHopSongクラス:ConcreteProduct≫ ≪HioHopProjectクラス:ConcreteCreator≫ ≪RAndBSongク…

Ch.3 KICK THE TEMPLATE METHOD

【目標】 Template Methodパターンを使用して、KREVA fes.に参加するパフォーマーのふるまいを表現しよう 【クラス図】 【実装】 <Performer抽象クラス:AbstractClass> ≪Comedianクラス:ConcreteClass≫ ≪Dancerクラス:ConcreteClass≫ ≪RockBandクラス:…

Ch.2 KICK THE ADAPTER

【目標】 Adapterパターンを使用して、小西真奈美(女優)にラップさせよう。 ①継承を使った場合(クラスによるAdapterパターン) 【クラス図】 【実装】 ≪Rapperクラス:Adaptee≫ <IActressインターフェース:Target> ≪ActressToRapperAdapterクラス:Ada…

Ch.1 KICK THE ITERATOR

【目標】 Iteratorパターンを使って"GOOD MUSIC"の曲目を表示しよう 【クラス図】 【実装】 〈Aggregateインターフェース〉 〈Iteratorインターフェース〉 ≪Tuneクラス≫ ≪CDクラス≫ ≪CDIteratorクラス≫ [Mainクラス] 【出力結果】 【メモ】 ・foreach構文…