[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends] Re: 「Javaオブジェクト設計」




佐藤@静岡です
#本はまだ読んでいません(さっさと読め>おれ)

On Tue, 17 Nov 1998 09:27:58 +0900
  In <199811170027.JAA07512@xxxxxxxxxx>
    ENDO Yasuyuki <yasuyuki@xxxxxxxxxx> wrote:

> >「アクセッサメソッドの1つ1つについてinterfaceを定義するような」ことは
> >あまり意味が無いような気がします。
> 
> このメリット、デメリットについて考えてみました。
> 
> メリットですが、クラスが多数あるとき、必要なアクセッサーだけを実装すれば
> 良いということがあげられるでしょう。
> もし繰り返し現れるパターンがあれば、INameAdress のようにまとめてしまいます。
> また、同書の中に「プロキシーも含めて抽出する戦略」という節(p.87〜)があり、
> INameAdress を実装したクラス Person (人物)と Passenger (乗客) があるとき、
> 複数の INameAdress を保持するクラス NameAdressUI は、その保持するクラスが
> Person であっても Passenger であっても変更の必要がありません。

例があまり適切でないのでは(かといっておもしろい例をあげることはできま
せんが)
PersonとPassengerであれば

public class Person {
    public String getName() {}
    public void getName() {}
}

public class Passenger extends Person {}

public class PersonUI {}
のように考えられるので

Person、Passengerのように継承できる場合以外で Pluggableを実現するため
に INameのようなinterfaceを使用する必要があると・・・
interface INameの有効性がちょっと理解できたような気がします

> いちおう一通り読み終わりました。参考になったのはまず2章でしょう。
> 継承ではなくコンポジションが一般的だとCoadは言います。
> 継承に適するかどうかの5つのチェック項目はとても参考になります。 

すみません、本を読めば分かることですが、コンポジションとはなんのことな
んでしょう?
どこかで見たような気はするんだけど・・・
JavaHouseの過去のメールで検索してもうまく見つからない
Compositeパターンと関係あるのでしょうか?

#はやいとこ読んでみよう
---------------------------------------------------------------
佐藤 宏輔  / Sato Kosuke
mail-to : cab05340@xxxxxxxxxx