【Java】クラスの継承を彼女を作る行程になぞらえてみた


デザインパターン
「動くコード」を書く事は大事ですが
その後の保守や運用まで考えると「綺麗なコード」って観点も
忘れてはいけない観点です。

最低限動くコードを書いて
汚いままで稼働してもお客さんは困りませんが
やがて速度劣化の原因になってきたり
保守をする後続の担当者が爆死する原因になります。

なのでコードを書く際には
「”デザインパターン”なるものも勉強しようね」と教えられ
最近ずっとデザインパターンについて勉強してきました。

せっかく勉強したので
僕流の「エロは世界を救う」をコンセプトに考えた
くだらない暗記法でデザインパターンを紹介したいと思います。

その前に今日は
どんなコードを書く時も鍵になる
extendsについての備忘録になります。


佐々木希

public abstract class MakeKanojo{
 
    protected abstract void 出会い(Girl 彼女候補);
    protected abstract void デート(Girl 彼女候補);
    protected abstract void 告白(Girl 彼女候補);
    public void doMakeKanojo(){
        綺麗系美人 彼女候補 = 佐々木希;
        出会い(彼女候補);
        デート(彼女候補);
        告白(彼女候補);
    }
}

さて。
実はここには重大な問題点が1つあります。
少なくとも僕はこれでは困ります。

さあなんでしょう?

これじゃ綺麗系の美人としか付き合えない!!!


extendsして年下女子と突き合うためのMakeKanojoをつくる

public abstract class MakeKanojo{
   
    protected abstract void 出会い(Girl 彼女候補);
    protected abstract void デート(Girl 彼女候補);
    protected abstract void 告白(Girl 彼女候補);
    protected Girl createKanojo(){
        return new 綺麗系美人();
    }
    public void doMakeKanojo(){
        Girl 彼女候補 = createKanojo();
        出会い(彼女候補);
        デート(彼女候補);
        告白(彼女候補);
    }
}
public abstract class MakeToshishitaNoKanojo extends MakeKanojo{
   
    protected abstract void 出会い(Girl 彼女候補){
    	try(サークル){
    		//TODO
    	}catch(Throwable e){
    		throw new RuntimeException("社会の目がやばいです!");
    	}
    }
    protected abstract void デート(Girl 彼女候補){
    	try(オシャレなディナー){
    		//TODO
    	}catch(Trowable e){
    		throw new IllegalArgumentException("金欠です!");
    	}
    }
    protected abstract void 告白(Girl 彼女候補){
    	try(ストレートな告白){
    		//TODO
    	}catch(Throwable e){
    		throw new NullPointerException("彼女候補がNullです。");
    	}
    }
    protected Girl createKanojo(){
        return new 童顔系後輩女子();
    }
}

こんな事ができちゃうわけですね!
これで晴れて年下の可愛い系女子が好きな人でも
意中の女性を仕留める事ができます!

※サンプルコード書くのがダルかったので処理の部分が凄く汚いのはお許しください。


まとめ
これでどんな女の子ともつきあえるようになりました!
例えば「マダム系熟女」な彼女をつくるためのMakeKanojoも作れちゃうわけですね!
これは魅力的です!

是非
Javaを書く際はこのextendsを有効に活用してみてください!

ちなみにこのextends。
実装の重複を防げる事でも重宝されています。

親クラスにあるmethodはextendsされた子クラスでも使えるので
例えば”MakeToshiueKanojo”とかクラスを作った際に
“extends MakeKanojo”をしておけばわざわざ告白を実装せずとも
しっかり”MakeToshiueKanojo”をする時にも告白できますよ!


最後まで読んでいただきありがとうございます。もしこの記事を気に入って頂けたようであればシェアをお願い致します。非常に励みになります。


コメントを残す