[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends] Re: 「Javaオブジェクト設計」
はじめまして佐藤@静岡です
なんとなく感じたことを・・・
On Wed, 11 Nov 1998 12:10:11 +0900
In <199811110309.MAA08642@xxxxxxxxxx>
ENDO Yasuyuki <yasuyuki@xxxxxxxxxx> wrote:
> >何でもかんでも interface として抽出して、
> >その interface どうしをまとめてまた interface にします。
>
> たとえば、String getName() と void setName(String) という
> アクセッサーが複数のクラスで使われている場合、
>
> public interface IName {
> public String getName();
> public void setName(String value);
> }
>
> という interface として抽出してしまいます。
>
> これ以外に、getAdress(), setAdress() というアクセッサーが使われていれば、
>
> public interface IAdress {
> public String getAdress();
> public void setAdress(String value);
> }
>
> として抽出してしまいます。
たとえば
class Person implements IName {
private String name;
public String getName() { return name }
public setName(String name) {this.name = name }
}
というようなINameを実装したclassを定義して
どこかで
IName namedPerson = new Person();
とか
void hogehoge(IName iName) {
System.out.println(iName.getName());
}
とかして使うぐらいの想像しかできません
INameという役割が必要であれば、(setName(),getName()を持つclassが 1つ
しかなくても)interface INameを定義して、上に書いたように使うかもしれ
ません。
そうではなくて
「アクセッサメソッドの1つ1つについてinterfaceを定義するような」ことは
あまり意味が無いような気がします。
> IName、IAdress 両方を implement する場合、implements IName, IAdress
> と書いても良いですが、
>
> public interface INameAdress extends IName, IAdress {}
>
> というものを書いてしまい、implements INameAdress としてしまいます。
implements IName, IAddressせずに、常にinterface INameAdressを定義する
必要はないのでは?(たまにはあるかもしれないけど)
interface INameAddressみたいのを量産してinterfaceの個数が多くなるは嫌
です(^^;
「Peter Code の Java オブジェクト設計」を読んでみようと思いますが、
この本の筆者は、なぜにそこまでinterfaceをつくりたがるんでしょ?
---------------------------------------------------------------
佐藤 宏輔 / Sato Kosuke
mail-to : cab05340@xxxxxxxxxx