【Java】Builderパターンを使って実装しようぜ!
mokabuu
mokabuu.com
Javaを書くようになっても
なかなかInterfaceをゴリゴリ使う機会って少なかったりします。
いや、実際に使えるようになるとめちゃくちゃ使うのですが
そもそもInterfaceと言うものを知らなかったりするのではないでしょうか?
そこで今日はInterfaceがどれぐらい便利か
好みの女の子を表現しつつ説明したいと思います。
[adsense]
例えば以下のようなInterfaceを作ったとします。
public interface Face {
public String faceType();
public String hairLength();
public String hairColor();
public String lip();
public String eyes();
}
これを作る事で
皆でこれを利用して好みの女性の顔のタイプについて話せます。
理想の女性を考えるときに顔だけで判断するだろうか?
きっと顔だけで女性を判断するほど君はゲスではないだろう!
スタイルも大事だよね☆
そこで下記もあわせて実装するわけです。
public interface Style {
public int height();
public int weight();
public ThreeSizeDto threeSize();
}
public class ThreeSizeDto {
private int bon;
private int kyu;
private int hip;
public ThreeSizeDto(int bon, int kyu, int hip){
this.bon = bon;
this.kyu = kyu;
this.hip = hip;
}
public int getBon() {
return bon;
}
public int getKyu() {
return kyu;
}
public int getHip() {
return hip;
}
}
参考:【Java】頼むからDTOをしっかりと実装して欲しいお話
public class MokabuuIdealGirl implements Face, Style {
public static final int myHeight = 170;
@Override
public int height() {
int risou = myHeight - 15;
return risou;
}
@Override
public int weight() {
// FIXME ここを実装すると世の中の女性に殺される
return 0;
}
@Override
public ThreeSizeDto threeSize() {
// FIXME ここを実装すると世の中の女性に...ry
return null;
}
@Override
public String faceType() {
String risou = "童顔";
return risou;
}
@Override
public String hairLength() {
String risou = "ロング";
return risou;
}
@Override
public String hairColor() {
String risou = "あまり気にしない";
return risou;
}
@Override
public String lip() {
String risou = "石原さとみ";
return risou;
}
@Override
public String eyes() {
// FIXME ネタ切れ
return null;
}
}
こんな感じでInterfaceが生きてくるわけであります。
extendsだと1つのみなのに対してinterfaceは複数いけるのも特徴ですね!
そしてこのInterfaceを1回定義しておく事で
友人からも好みの女性のタイプを聴き出そうとした際に
こんな具合で聴き出せるのです。
public class PepegonIdealGirl implements Face, Style {
public static final int myHeight = 180;
@Override
public int height() {
int risou = myHeight - 15;
return risou;
}
@Override
public int weight() {
// FIXME ここを実装すると世の中の女性に殺される
return 0;
}
@Override
public ThreeSizeDto threeSize() {
// FIXME ここを実装すると世の中の女性に...ry
return null;
}
@Override
public String faceType() {
String risou = "ちょっとキツめの綺麗系";
return risou;
}
@Override
public String hairLength() {
String risou = "ロング";
return risou;
}
@Override
public String hairColor() {
String risou = "明るい色";
return risou;
}
@Override
public String lip() {
String risou = "薄め";
return risou;
}
@Override
public String eyes() {
String eyes = "ちょっとキツい目つき";
return eyes;
}
}
Interfaceは「規格を統一するためのもの」なので
何か開発をする際はInterfaceをしっかりと考えてから
手を動かすと後々幸せになれます!!!
ちなみにMokabuuもPepegonも
実家で飼っているウサギの名前ですッ!
他意はありません(∀)
