抽象化レイヤー(Javaでいうインターフェース)を単数あるいは複数の階層構造で採用する現在のプログラミングでは当たり前になっているプログラミング手法のこと。