[#44431] コンストラクタの引数について&インスタンス変数の持ち方について — Akira Hayakawa <ruby@...>

度々オブジェクト指向についての質問ですいません。

17 messages 2008/01/04
[#44433] Re: コンストラクタの引数について&インスタンス変数の持ち方について — Yukihiro Matsumoto <matz@...> 2008/01/04

まつもと ゆきひろです

[#44469] pdf 作成 ライブラリ — "Luiz Aoki" <luizruby@...>

はじめまして、青木ルイスと申します、

14 messages 2008/01/12
[#44479] ファイル出力時のprintについて — m-hatake@... 2008/01/16

畠山と申します。

[#44483] format %g の丸めについて — 山崎雄介 <y-yamasaki@...>

山崎(ゆ)です。

14 messages 2008/01/16

[ruby-list:44431] コンストラクタの引数について&インスタンス変数の持ち方について

From: Akira Hayakawa <ruby@...>
Date: 2008-01-04 15:16:02 UTC
List: ruby-list #44431
度々オブジェクト指向についての質問ですいません。
先日は、メソッドが他の自作オブジェクトを引数にとってよいかという話でしたが、
ぼくはRubyが始めてで、静的なオブジェクト指向をやったことがありません。
なので、Javaを3日で集中的に勉強して、目の前にある課題を書こうとしましたが、すごくめんどくさい事が分かりました。
いちいち型をつけないといけないのは、すごくめんどくさい事なのですね。
というわけで、Rubyに戻ってきました。

そこで質問が2つあります。

(質問1)
今、AとBというクラスを考えます。
BはAにオブジェクトコンポジションでもたれる事にします。
例えば、
Aが車で、Bがタイヤだとします。
ここで、Aは、コンストラクタの引数で

class A
  def initialize(class_B_instancere)
    @tyre = class_B_instance

ととるのがいいのか、
もしくは、Bのコンストラクタが、タイヤの直径だとします。
つまり、

class B
  def initialize(wheel_size)
という形であるとして、

class A
  def initialize(wheel_size)
    @tyre = B.new(wheel_size)

とするのがいいか、どちらでしょう?

(質問2)
今、ある座標上の点を表すクラスPointというものを考えます。
このPointは当然、x座標とy座標を持つと思いますが、ここで質問です。

class Point
  def initialize(x, y)
    @x = x
    @y = y
の形で持つのと、xとyは所詮座標であり、仲間であるという事を意識する為に
class Point
  @where[0] = x
  @where[1] = y
の形で持つのはどちらがいいのでしょうか?

ぼく個人の意見では後者ではないかというのが今の考えです。
なぜなら何かアルゴリズムをいじる時に、数字をindexとして持っていた方が便利だと思うからです。
前者は例えば、テーブルの値を
a00 = 3
a10 = 1
のように持つのと同様で、後者は
a[0][0] = 3
a[1][0] = 1
のように持つのと同様ではないかと考えています。

以上2点を質問します。
ぼくは考えすぎでしょうか・・・
-- 
Akira Hayakawa <ruby@i-mail.jp>

In This Thread

Prev Next