[#50446] WindowsでTCPServerをホスト指定しないで動かすと他ホストから接続できない — Shin Kuboaki <kuboaki@...>

5LmF5L+d56eL44Go55Sz44GX44G+44GZ44CCDQoNCu+8ke+8ieihqOmhjOOBruWLleS9nOOBr+OA

11 messages 2016/11/02
[#50447] Re: WindowsでTCPServerをホスト指定しないで動かすと他ホストから接続できない — Toshihiko Ichida <dogatana@...> 2016/11/03

市田です。

[#50448] Re: WindowsでTCPServerをホスト指定しないで動かすと他ホストから接続できない — Toshihiko Ichida <dogatana@...> 2016/11/04

市田です。

[#50449] Re: WindowsでTCPServerをホスト指定しないで動かすと他ホストから接続できない — "U.NAKAMURA" <usa@...> 2016/11/04

こんにちは、なかむら(う)です。

[ruby-list:50457] Re: [質問] classから作成したインスタンスから作成元のclassのインスタンス変数を参照するには

From: Toshihiko Ichida <dogatana@...>
Date: 2016-11-07 13:35:45 UTC
List: ruby-list #50457
市田です。

質問の意図を正しく把握できているか不安ですが。

On 2016/11/07 15:54, yamataka@u08.itscom.net wrote:

> class NetWorkAudioDevice
>
>    attr_reader	:is_in_nw
>
>    def initialize(device,is_in_nw)
>     @is_in_nw = is_in_nw
>     ...
>    @webapi      = WebAPI.new(@ip,api_port,@is_in_nw)
>    @render      = Rendering.new(device.service,@is_in_nw)
>    @avtransport = AVTransport.new(device.service,@is_in_nw)
>   end
> end
>
> 各WebAPI,Rendering,AVTransportをインスタンス作成する際に、@is_in_nwを渡
> し、
> それぞれの関数内で、判別するしかないのかでしょうか?
>
> NetWorkAudioDevice class内から、それぞれWebAPI,Rendering,AVTransportのイ
> ンスタンスを作成しているので、
> インスタンス作成時に、@is_in_nwを渡さなくても、参照できるんいい方法があ
> るんじゃないか?

Renderのインスタンスから何かの方法で参照できたとして、その情報を元に
SetMute(これは set_mute が良いかと)のふるまいを変えるなら

 > それぞれの関数内で、判別するしかないのかでしょうか?

となってしまうのではと思います。

2つのインスタンスは独立したオブジェクトなので、作成されたインスタンス側
で判定するのであれば、判定できるよう、何らか参照できる手段を提供する必要 
があり、思いつくのは

1. @is_in_nw を渡す(書かれている方法)
2. self を渡す
3. @is_in_nw を判定できるクロージャを渡す

くらいです。

もっとも渡さなくても、render メソッドを単なるアクセッサメソッドとせずに
@is_in_nw が false の場合は、render メソッドが false を返すとか、例外と 
する手もあります。これだとDeviceクラス側の処理で済みます。

ただこう考えてくると
- @is_in_nw が false の場合でも Render などのインスタンスを作成する意味 
があるか
- 作成したとして、その場合に呼びされたインスタンスメソッドは @is_in_nw
の値に従ってどう振る舞うのが良いか
- @is_in_nw は動的に変わるのか、それともDeviceインスタンス生成時に指定し 
た以降変化するのか
など、クラスにどのような役割をもたせるのかなど、クラス設計の話になるので
はと思います。

In This Thread