洗濯機をオブジェクト指向で説明してください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/01/27 14:58:53
  • 終了:--

回答(5件)

id:irukajp No.1

irukajp回答回数174ベストアンサー獲得回数22005/01/27 16:03:11

ポイント54pt

http://www.atmarkit.co.jp/fjava/devs/object01/object01.html

@IT:連載:ここから始めるオブジェクト指向 第1回

洗濯機、水、洗剤、洗濯物をオブジェクトととらえます。

洗濯機は、洗濯機構というインターフェイスを持ち、洗濯プロセス、脱水プロセスで洗濯物に接します。さらに洗濯機構は、水・洗剤の投入というファンクションがあります。

水はオブジェクトです。洗剤も、当初はオブジェクトですが、水に溶けることで、オブジェクト性を失い、水のプロパティになります。

洗濯物は、それ自身に加えて、汚れというオブジェクトを持ちます。一粒一粒が独立したオブジェクトです。汚れも、水に混ざることでオブジェクト性を失い、水のプロパティになってしまいます。

動作は、洗濯機オブジェクトが洗濯プロセスを開始し、水オブジェクトに作用し、水流を作ります。それが、汚れオブジェクトを分解または乖離します。その次に、脱水プロセスで水が取り除かれます。洗濯物に作用するだけの水量がなくなると、水はオブジェクト性を失い、洗濯物のプロパティになります。その後は乾燥プロセスを開始するなり、自分で干すなりして、プロパティの水を除去します。

id:anpan165

URLの第3回がないのはなぜでしょう。オブジェクトがプロパティになるのですか。大変参考になります。ありがとうございました。

2005/01/27 17:01:04
id:Z9M9Z No.2

Z9M9Z回答回数343ベストアンサー獲得回数112005/01/27 16:05:28

ポイント10pt

http://jp.sun.com/learnabout/java/

$B%5%s!&%^%$%/%m%7%9%F%`%:(B - Java $B%F%/%N%m%8(B

public class 洗濯機 {

public 集合 汚れ物

 public 集合 洗濯物

protected int _電気代;

protected int _水道代;

 protected int _洗剤代;

洗濯機(){汚れ物=null; 洗濯物=null;}

 Boolean 洗濯(){

洗濯物=汚れ物.除去(臭気,浸透物,付着物)

_電気代+=洗濯電力(汚れ物.重量());

_水道代+=洗濯水(汚れ物.重量());

  _洗剤代+=一回分;

}

public static void main(String args[]) {

洗濯機 panasonic = new 洗濯機();

panasonic.汚れ物={下着,靴下,...};

if(panasonic.洗濯()) 衣類再利用

  else {

衣類購入;

洗濯機 toshiba = new 洗濯機();

}

}

}

…(苦笑)

id:anpan165

JAVA系だとこんな感じになるのですね。洗濯物=汚れ物.除去(臭気,浸透物,付着物)だったのですか。ありがとうございました。

2005/01/27 17:07:00
id:peugeot No.3

peugeot回答回数131ベストアンサー獲得回数52005/01/27 16:08:51

ポイント3pt

洗濯機という概念がクラスです。具体的な洗濯機の商品がオブジェクトになります。

洗濯機クラスには「洗濯する」という操作があります。

属性として「容量」があります。

洗濯機を改良して脱水機能を追加すること、これを派生といいます。派生した脱水機能付き洗濯機には「脱水する」という操作が追加されます。

それでは洗濯機は何から派生しているかというとやはり「家電」ではないでしょうか?

家電クラスは「プラグ」という

インターフェイスを持ち「コンセント」クラスから電力を供給することができます。

id:anpan165

このようなページがあったのですか。ありがとうございます。

2005/01/27 17:10:37
id:dev_zer0 No.4

dev_zer0回答回数332ベストアンサー獲得回数252005/01/27 17:41:28

ポイント10pt

上の人達は実装方法に言及しているので、私はオブジェクト指向の設計方法に言及してみました。

○     洗濯システム

大 −−→洗濯機

まず、おおまかなユースケースで記述してみます。

ここでは洗濯人アクターを洗濯システムで洗濯することを表現しています。

http://www.ogis-ri.co.jp/otc/hiroba/technical/DDJ/index.html

UMLとオブジェクト指向分析・設計が開発リスクを軽減する -INDEX-

次にアクターと洗濯機システムのインターフェースを設計します。

が、規模とお金の関係でさまざまな実装方式が考えられます。

例えば洗濯機の実装方式としては

・たらいと洗濯板

・2層式洗濯機

・全自動洗濯機

・乾燥機付全自動洗濯機

これらは上位になるほど実装が容易で安く済みますが、

下位になるほど実装が難しく価格が高い傾向となります。

これらの案を洗い出し、顧客と相談し、適切な実装方式を提供します。

(要件を聞くと、ホントにたらいと洗濯機でもよい状況があります。)

なお、便利になり洗濯物が増加した場合の超過処理、

洗濯機システムが壊れたときの復旧手順、代替手段など、

オブジェクト指向でも運用についての課題は解決しません。

id:anpan165

なるほど、初期にしか役に立たないのですね。

2005/01/28 09:29:39
id:shampoohat No.5

shampoohat回答回数347ベストアンサー獲得回数02005/01/27 17:54:40

ポイント3pt

【インタフェースについて書きましょう】

洗濯機という言葉がさすものは、抽象クラス(というか、Javaなんかだとインタフェース)です。最低限の操作として、

・衣類をいれる

・洗濯する

・衣類をとりだす

という操作を持ちます。家電各社の洗濯機の機種は、このインタフェースを継承(というか、インプリメント)しています。

これにより、僕らは、5年前に買った「銀河」でも、昨日買い換えた「白い約束」でも、目の前のオブジェクトが洗濯機であれば、操作する側を改造することなく、共通の操作で使うことが出来ます。

id:anpan165

共通の操作ですね。

2005/01/31 09:06:44

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません