interfaceベースの設計は冗長だが作りやすいな。
迷うとinterface(規格)→abstract(ひな形)→具体クラスってのが多い。