『インターフェイス指向設計』読み終わったよ
インターフェイス指向設計 ―アジャイル手法によるオブジェクト指向設計の実践
- 作者: Ken Pugh,角谷信太郎(監訳),児島修
- 出版社/メーカー: オライリージャパン
- 発売日: 2008/05/24
- メディア: 大型本
- 購入: 16人 クリック: 357回
- この商品を含むブログ (67件) を見る
内容を簡単にまとめると、継承使うな、インターフェイスを積極的に使っていこう、といった感じ。自分の好みにも合致していて気持ちいい。
例えば、JavaでInputStreamは継承関係で実現されている。
public abstract class InputStream { public InputStream(){ ... } public void close(){ ... } public int read(byte[] bytes){ ... } public int read(byte[] bytes, int offset, int length){ ... } public long skip(int n){ ... } public boolean markSupported(){ ... } public void mark(int limit){ ... } public void reset(){ ... } } pubilc class FileInputStream extends InputStream{ // markはサポートしない ... } public class ByteArrayInputStream extends InputStream{ // markをサポートする ... }
これだと、mark()を使う前にmarkSupported()を呼び出して、使えるかどうかチェックしないといけない。
これをインタフェースで書き直すと、Markableインターフェイスを実現しているかどうかで、mark()を使えるかどうかが明白になる。
public interface InputStream { public void close(); public int read(byte[] bytes); public int read(byte[] bytes, int offset, int length); public long skip(int n); } public interface Markable{ public boolean markSupported(){ ... } public void mark(int limit){ ... } public void reset(){ ... } } public class FileInputStream implements InputStream{ ... } public class ByteArrayInputStream implements InputStream,Markable{ ... }
本の内容とは関係ないけれど、結構誤字が目立った気がする。「等幅インターフェイス(p36)」とか「nterface(p85)」とか。