C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: 集約の使い方を教えて下さい。


(過去ログ 86 を表示中)

[トピック内 15 記事 (1 - 15 表示)]  << 0 >>

■51456 / inTopicNo.1)  集約の使い方を教えて下さい。
  
□投稿者/ OBJ (1回)-(2010/07/06(Tue) 22:19:36)

分類:[設計/仕様] 

オブジェクト指向初心者です。
初歩的な質問だと思いますが、アドバイス頂けたら嬉しいです。
集約の使い方について正しいのか不安なので質問させて下さい。

例として、画像を送受信・表示するプログラムを挙げたいと思います。
次のクラスが浮かびます。

・メインクラス   ・・・初期処理や制御処理を行うクラス
・画像送受信クラス ・・・画像の送受信処理を行うクラス
・通信クラス    ・・・通信処理を行うクラス(画像送受信クラスに集約する)
・描画クラス    ・・・受信した画像を描画するクラス
・画像管理クラス  ・・・送信する画像を取得、管理するクラス

この時、受信した画像データを表示するために、描画クラスへ渡すことになると思うのですが、
この場合に、新たに制御クラスを設け、これに画像送受信クラスと描画クラスを集約するという使い方で正しいのでしょうか。
(制御クラスを通して画像を受信して、その結果を描画クラスへ渡すことになります)

宜しくお願いします。
引用返信 編集キー/
■51463 / inTopicNo.2)  Re[1]: 集約の使い方を教えて下さい。
□投稿者/ 刈歩 菜良 CTP (2回)-(2010/07/07(Wed) 00:08:13)
刈歩 菜良 CTP さんの Web サイト
集約というのはいわゆるマネージャとエンティティの関係を表す場合が多いです。

もう少しわかりやすく言うと、配列と要素の関係です。

なので、制御クラスと画像送受信クラス/描画クラスを集約の関係にするのは少し無理があるのではないかと思います。
単なる関連ではないかと...

もし、描画クラスが複数の種類があるのであれば、画像送受信クラスと通信クラスの関係のように、各描画クラスを取りまとめるマネージャを作って集約関係にすることになると思います。

いずれにせよ、制御クラスはコントローラなので、それに対して集約というのはあまりしないと思います。


No51456 (OBJ さん) に返信
> オブジェクト指向初心者です。
> 初歩的な質問だと思いますが、アドバイス頂けたら嬉しいです。
> 集約の使い方について正しいのか不安なので質問させて下さい。
>
> 例として、画像を送受信・表示するプログラムを挙げたいと思います。
> 次のクラスが浮かびます。
>
> ・メインクラス   ・・・初期処理や制御処理を行うクラス
> ・画像送受信クラス ・・・画像の送受信処理を行うクラス
> ・通信クラス    ・・・通信処理を行うクラス(画像送受信クラスに集約する)
> ・描画クラス    ・・・受信した画像を描画するクラス
> ・画像管理クラス  ・・・送信する画像を取得、管理するクラス
>
> この時、受信した画像データを表示するために、描画クラスへ渡すことになると思うのですが、
> この場合に、新たに制御クラスを設け、これに画像送受信クラスと描画クラスを集約するという使い方で正しいのでしょうか。
> (制御クラスを通して画像を受信して、その結果を描画クラスへ渡すことになります)
>
> 宜しくお願いします。
引用返信 編集キー/
■51464 / inTopicNo.3)  Re[1]: 集約の使い方を教えて下さい。
□投稿者/ すなふきぬ (13回)-(2010/07/07(Wed) 00:30:21)
No51456 (OBJ さん) に返信
> オブジェクト指向初心者です。
> 初歩的な質問だと思いますが、アドバイス頂けたら嬉しいです。
> 集約の使い方について正しいのか不安なので質問させて下さい。
>
> この時、受信した画像データを表示するために、描画クラスへ渡すことになると思うのですが、
> この場合に、新たに制御クラスを設け、これに画像送受信クラスと描画クラスを集約するという使い方で正しいのでしょうか。
> (制御クラスを通して画像を受信して、その結果を描画クラスへ渡すことになります)

まず確認させてください。
この設計は、これから本当に作成するプログラムなのか、UMLの課題のような概念的な設計なのでしょうか?

前者であれば、おそらくオブジェクト指向というものを処理単位だけで考えていませんか?

このようなプログラムの場合、主役となるオブジェクトは「画像」だと思います。

描画処理があるということは、画面なりブラウザなりの描画先のオブジェクトも存在するでしょうし、クラス設計の段階でこれらのオブジェクトがまだ見つけれていないように思います。

集約関係は、has-aの関係なので、「全体に対する部分」の意味合いになります。
そうなれば、主役の「画像」オブジェクトをどのように管理するかで、集約するクラスは決まってくると思います。

OBJさんが考えているクラスの中で言えば、「画像管理クラス」が「画像」を管理することになると思います。

「画像送受信クラス」「通信クラス」「描画クラス」も必要だとは思いますが、これらのクラスの関連はクラス図で関連を表すより、シーケンス図で制御の遷移を明確にする方が重要だと思います。


もう少し厳密に言えば集約とは、「全体のクラスであるオブジェクトが生存している間は、部分であるクラスのオブジェクトが0個以上存在する」ものだと思います。
よって、

> 通信クラス    ・・・通信処理を行うクラス(画像送受信クラスに集約する)

この関係も集約にする必要はないはずです(通信クラスは、画像送受信クラスの送受信処理の間だけ生存すれば良いため)

オブジェクト指向は慣れるまで試行錯誤しますが、まず主役となるオブジェクトを決めていけば関連オブジェクトも導出しやすいと思います。
引用返信 編集キー/
■51466 / inTopicNo.4)  Re[2]: 集約の使い方を教えて下さい。
□投稿者/ OBJ (2回)-(2010/07/07(Wed) 01:11:24)
No51463 (刈歩 菜良 CTP さん) に返信

分かり易くご回答頂きありがとうございます。

> もし、描画クラスが複数の種類があるのであれば、画像送受信クラスと通信クラスの関係のように、各描画クラスを取りまとめるマネージャを作って集約関係にすることになると思います。
> いずれにせよ、制御クラスはコントローラなので、それに対して集約というのはあまりしないと思います。

関連のないクラス同士を結びつけるために集約すると勘違いしていました。
これはただの制御クラスということになるんですね。
1つの親クラスに対して複数のサブクラスがあることを集約と考えればよいでしょうか??
引用返信 編集キー/
■51467 / inTopicNo.5)  Re[2]: 集約の使い方を教えて下さい。
□投稿者/ すなふきぬ (14回)-(2010/07/07(Wed) 01:45:45)
No51464 (すなふきぬ さん) に返信
> ■No51456 (OBJ さん) に返信

すみません。自己訂正です。

> もう少し厳密に言えば集約とは、「全体のクラスであるオブジェクトが生存している間は、部分であるクラスのオブジェクトが0個以上存在する」ものだと思います。

この部分は、コンポジットや関連と混同する可能性があるので無視してください。
「画像管理クラス」と「画像」だけに着目すると、集約でも良いかと思っていましたが、「描画クラス」で画像を取り扱う方法によっては集約じゃなくなる場合があるので。
引用返信 編集キー/
■51468 / inTopicNo.6)  Re[2]: 集約の使い方を教えて下さい。
□投稿者/ OBJ (3回)-(2010/07/07(Wed) 01:56:09)
No51464 (すなふきぬ さん) に返信

ご回答ありがとうございます。

> この設計は、これから本当に作成するプログラムなのか、UMLの課題のような概念的な設計なのでしょうか?

本当に作成するプログラムではないのですが、オブジェクト指向の考え方が分かっていないため
どういう設計がベターなのか模索しているところでした。

> 前者であれば、おそらくオブジェクト指向というものを処理単位だけで考えていませんか?

まさにそのとおりです。処理単位で考えていました。

> このようなプログラムの場合、主役となるオブジェクトは「画像」だと思います。
> 描画処理があるということは、画面なりブラウザなりの描画先のオブジェクトも存在するでしょうし、クラス設計の段階でこれらのオブジェクトがまだ見つけれていないように思います。

すいません。ここが良く分かりません。
描画先のオブジェクトというのは確かに画面なりブラウザなりあると思うのですが、それは描画クラスとは独立するものなのでしょうか。

> OBJさんが考えているクラスの中で言えば、「画像管理クラス」が「画像」を管理することになると思います。

ということは、画像管理クラスが画像クラスを集約するということでしょうか。
画像管理クラス−−−風景画像クラス
          |
          −−人物画像クラス
          |
          −−・・・

> 「画像送受信クラス」「通信クラス」「描画クラス」も必要だとは思いますが、これらのクラスの関連はクラス図で関連を表すより、シーケンス図で制御の遷移を明確にする方が重要だと思います。

シーケンス図はまったく書いたことがないので、さっそく覚えていきたいと思います。


>>通信クラス    ・・・通信処理を行うクラス(画像送受信クラスに集約する)
>
> この関係も集約にする必要はないはずです(通信クラスは、画像送受信クラスの送受信処理の間だけ生存すれば良いため)

上述の画像管理クラスの考え方が違うとこれも違ってしまうのですが、下記のような使い方は正しいでしょうか。
通信クラス−−TCP通信クラス
       |
       −−UDP通信クラス
       |
       −−・・・
画像送受信クラスはこの通信クラスを使用するということでしょうか。
集約は拡張性を上げるために使っているというイメージなのでしょうか。

> オブジェクト指向は慣れるまで試行錯誤しますが、まず主役となるオブジェクトを決めていけば関連オブジェクトも導出しやすいと思います。

質問ばかりですいません。平行して少しでも理解できるように努力していきたいと思います。
引用返信 編集キー/
■51471 / inTopicNo.7)  Re[3]: 集約の使い方を教えて下さい。
□投稿者/ 刈歩 菜良 CTP (3回)-(2010/07/07(Wed) 09:38:19)
刈歩 菜良 CTP さんの Web サイト
> 1つの親クラスに対して複数のサブクラスがあることを集約と考えればよいでしょうか??

もしかして、集約と継承がごっちゃになってます?
# “サブクラス”っていう言葉が派生クラスを表すのかしらと...

ADO.NETはご存知でしょうか?
DataSetがマネージャーでその中に入る各DataTableがエンティティーです。
この関係が集約です。
継承はまた別のお話になっちゃいます。
引用返信 編集キー/
■51482 / inTopicNo.8)  Re[4]: 集約の使い方を教えて下さい。
□投稿者/ TK (4回)-(2010/07/07(Wed) 11:43:51)
No51471 (刈歩 菜良 CTP さん) に返信

ご返信有難うございます。

> もしかして、集約と継承がごっちゃになってます?
> # “サブクラス”っていう言葉が派生クラスを表すのかしらと...

ごっちゃになっていました、、、

> ADO.NETはご存知でしょうか?
> DataSetがマネージャーでその中に入る各DataTableがエンティティーです。

ADO.NETについては分っていません。
DataSetとDataTableの関係を調べてみたのですが、ここから集約を理解することができませんでした。
(ADO.NETの知識がないからだと思います)

前回、描画クラスが複数の種類があるのであれば・・・各描画クラスを取りまとめるマネージャを作って集約関係・・・
とおっしゃっていましたが、例えば、描画クラスにグラフ描画クラスと図形描画クラスの2つがあった場合、下記のように
なるのが集約なのでしょうか。
(抽象的な話を具体的にしてしまってすいません、、)

描画クラス(Draw.class)
グラフ描画クラス(DrawGraph.class)
図形描画クラス(DrawShape.class)

Class Draw
{
private DrawGraph drawGraph;
private DrawShape drawShape;

public void WriteGraph()
{
drawGraph.Write();
}

public void WriteShape()
{
drawShape.Write();
}

}

Class DrawGraph
{

public void Write()
{
// グラフ描画処理
}

}

Class DrawShape
{

public void Write()
{
// 図形描画処理
}

}
引用返信 編集キー/
■51485 / inTopicNo.9)  Re[5]: 集約の使い方を教えて下さい。
□投稿者/ OBJ (5回)-(2010/07/07(Wed) 13:37:51)
自己レスです。

■51482 は名前がTKとなっていますが、書いたのは私(OBJ)です。
端末が違うために違う人の名前が入ってしまいました。混乱させてすいません。
引用返信 編集キー/
■51489 / inTopicNo.10)  Re[3]: 集約の使い方を教えて下さい。
□投稿者/ すなふきぬ (15回)-(2010/07/07(Wed) 14:58:16)
No51468 (OBJ さん) に返信
> ■No51464 (すなふきぬ さん) に返信
>>この設計は、これから本当に作成するプログラムなのか、UMLの課題のような概念的な設計なのでしょうか?
>
> 本当に作成するプログラムではないのですが、オブジェクト指向の考え方が分かっていないため
> どういう設計がベターなのか模索しているところでした。

了解です。では、設計をする段階で注意すべき点から考えていきましょう。

>>このようなプログラムの場合、主役となるオブジェクトは「画像」だと思います。
>>描画処理があるということは、画面なりブラウザなりの描画先のオブジェクトも存在するでしょうし、クラス設計の段階でこれらのオブジェクトがまだ見つけれていないように思います。
>
> すいません。ここが良く分かりません。
> 描画先のオブジェクトというのは確かに画面なりブラウザなりあると思うのですが、それは描画クラスとは独立するものなのでしょうか。

これについては、アプリケーションの規模によると思います。
簡単な描画だけで処理が完結するなら画面の中に描画処理を入れても良いと思いますし、複雑な描画処理が必要ならば描画を制御するクラスを独立させるのが可読性を高めると思います。
前者なら「画面が画像を描画する」ですし、後者なら「画面が描画クラスを利用して画像を描画する」だと思います。


>>OBJさんが考えているクラスの中で言えば、「画像管理クラス」が「画像」を管理することになると思います。
>
> ということは、画像管理クラスが画像クラスを集約するということでしょうか。
> 画像管理クラス−−−風景画像クラス
>           |
>           −−人物画像クラス
>           |
>           −−・・・

集約の概念は、コンポジションと混同されることも多く色々な解釈があると思いますが、重要なのは
・「インスタンスの関連」である
・ライフサイクルの依存が両者において存在しない(依存する場合はコンポジション)
ことだと思います。
今回のシステムで言えば、「画像」インスタンスをどこで管理するかで関連の度合いは変化すると思います。



> >>通信クラス    ・・・通信処理を行うクラス(画像送受信クラスに集約する)
>>
>>この関係も集約にする必要はないはずです(通信クラスは、画像送受信クラスの送受信処理の間だけ生存すれば良いため)
>
> 上述の画像管理クラスの考え方が違うとこれも違ってしまうのですが、下記のような使い方は正しいでしょうか。
> 通信クラス−−TCP通信クラス
>        |
>        −−UDP通信クラス
>        |
>        −−・・・

この図の階層が関係を表しているのか、継承を表しているのかわからないので回答に迷いますが、TCP通信クラスやUDP通信クラスを自作されるのでしょうか?
Javaや.NETを利用するのであれば、この辺の通信クラスはフレームワーク側で提供されているものなので、自作しないのであれば初期の段階ではクラス図に書かない方が良いと思います。
クラス設計で重要なことは、作成するクラス間の関係を明確にすることだと思うので、なるべく簡潔に記述することをお勧めします。

> 画像送受信クラスはこの通信クラスを使用するということでしょうか。

ところで、この「通信クラス」の立場はどのような物なのでしょうか?
画像送受信クラスから呼ばれるみたいですが、明確な意味がないのであれば「画像送受信クラス」にまとめることはできないでしょうか?

> 集約は拡張性を上げるために使っているというイメージなのでしょうか。

TCPやUDPは非同期な処理になると思うので、通信クラスの属性としてインスタンスを保持する必要があるかもしれませんが、この場合は単純にプライベートな属性として記述しておくと簡潔にまとまると思います。
(もしくは、通信メソッド(TCP, UDP etc)のみ定義しておく。TCP通信クラスのインスタンスを通信クラスが保持するかしないかは、あくまで実装レベルの話なので外部のクラスから見ると必要ないものなので敢えて記述しない)
引用返信 編集キー/
■51491 / inTopicNo.11)  Re[4]: 集約の使い方を教えて下さい。
□投稿者/ OBJ (6回)-(2010/07/07(Wed) 16:56:32)
No51489 (すなふきぬ さん) に返信

ご返信ありがとうございます。

> 集約の概念は、コンポジションと混同されることも多く色々な解釈があると思いますが、重要なのは
> ・「インスタンスの関連」である
> ・ライフサイクルの依存が両者において存在しない(依存する場合はコンポジション)
> ことだと思います。
> 今回のシステムで言えば、「画像」インスタンスをどこで管理するかで関連の度合いは変化すると思います。

関連の度合い・・・ですか。
画像インスタンスは送受信クラスや描画クラス、画像管理クラスで扱われることになると思うのですが
管理する(値を保持する時間が長い)という意味では画像管理クラスになるんでしょうか。

そうすると、最初の質問文にある

・画像管理クラス  ・・・送信する画像を取得、管理するクラス



・画像管理クラス  ・・・送受信する画像を取得、管理するクラス

となって、受信した画像を画像管理クラスへ渡して、描画クラスは画像管理クラスから取得するという流れが良いのでしょうか。
余談ですが、どうしても流れ(手続き)のことを考えてしまうのですが、、クラスを考える上で必要なことでしょうか。


>>通信クラス−−TCP通信クラス
>>       |
>>       −−UDP通信クラス
>>       |
>>       −−・・・
>
> この図の階層が関係を表しているのか、継承を表しているのかわからないので回答に迷いますが、

すいません、継承と集約がごっちゃになってしまっていました。


> ところで、この「通信クラス」の立場はどのような物なのでしょうか?
> 画像送受信クラスから呼ばれるみたいですが、明確な意味がないのであれば「画像送受信クラス」にまとめることはできないでしょうか?

まとめるというのは通信クラスを継承させて画像送受信クラスを作るという意味でしょうか。
ここもよく分ってないところなのですが、例えば、画像以外にも(文字列や音声等)送受信する必要がでてきた場合、通信クラスを1つ作っておいたほうが
他のクラスからもそれを使用できるのではと思っていたのですが、間違いでしょうか。


宜しくお願いします。
引用返信 編集キー/
■51505 / inTopicNo.12)  Re[5]: 集約の使い方を教えて下さい。
□投稿者/ すなふきぬ (16回)-(2010/07/07(Wed) 22:15:43)
No51491 (OBJ さん) に返信
> ■No51489 (すなふきぬ さん) に返信

> 関連の度合い・・・ですか。
> 画像インスタンスは送受信クラスや描画クラス、画像管理クラスで扱われることになると思うのですが
> 管理する(値を保持する時間が長い)という意味では画像管理クラスになるんでしょうか。

オブジェクトの生存期間を考慮して管理クラスを設けるのは良いと思いますが、これも作成するシステムの規模によると思います。
例えば1つの画面のみで画像を取り扱うなら、わざわざ管理クラスを作成する必要はないかもしれませんし、大量の画像を取り扱って描画制御も行うのであればもっと複雑な管理クラスになるかもしれません。

要はシステムのあるべき姿に素直なクラス設計を行うのが一番だと思います。

今回は目標となるシステムを明確に決めておられないようなので、これ以上の解説はしない方が良いかもしれません。
(下手にこれが正解みたいな固定観念にとらわれると、固い設計しかできなくなっちゃうかもしれないので)


> となって、受信した画像を画像管理クラスへ渡して、描画クラスは画像管理クラスから取得するという流れが良いのでしょうか。
> 余談ですが、どうしても流れ(手続き)のことを考えてしまうのですが、、クラスを考える上で必要なことでしょうか。

クラス設計を考える上で、流れを意識することは重要だと思います。
手続きには色々な実装方法があると思いますが、基本はメソッドで実装すると思うので、クラスを設計する段階でメソッドを考えていけば良いと思います。

本来ならユースケースの段階である程度の処理は拾えているはずなので、クラス設計の段階ではその処理を書き出していく感じです。この作業が終われば、複雑な部分をシーケンス図やアクティビティ図に書き起こしていって詳細な部分を検討する流れになると思います。


> まとめるというのは通信クラスを継承させて画像送受信クラスを作るという意味でしょうか。
> ここもよく分ってないところなのですが、例えば、画像以外にも(文字列や音声等)送受信する必要がでてきた場合、通信クラスを1つ作っておいたほうが
> 他のクラスからもそれを使用できるのではと思っていたのですが、間違いでしょうか。

将来的な実装を考えて、クラスを抽象的に作成することも必要な場合もあるかもしれませんが、不確定な将来のために基底クラスを用意しておくと言う考えには賛同できません。
これは、「将来は猫がシステムを使う時代が来るかもしれないから、社員クラスは哺乳類クラスから継承させて作ろう」と言っているのと同じです。
音声や文字列を将来的に組み込みたいのであれば、インターフェースを用意しておくとかメソッドの引数を列挙体にしておいて後で動作を変更するとか色々あると思います。

この辺は、設計だけではなく言語仕様も絡む部分になるので、設計と併せてプログラムを勉強してみるのも良いと思います。
引用返信 編集キー/
■51532 / inTopicNo.13)  Re[6]: 集約の使い方を教えて下さい。
□投稿者/ OBJ (7回)-(2010/07/08(Thu) 13:32:43)
No51505 (すなふきぬ さん) に返信

> この辺は、設計だけではなく言語仕様も絡む部分になるので、設計と併せてプログラムを勉強してみるのも良いと思います。

長くお付き合い頂きありがとう御座いました。

集約どうこうよりもまだクラス設計についてピンときていないと思いました。
長く手続き型のプログラムを組んでたということもあり、クラスの抽出の仕方、その役割、クラス間の連携方法などシンプルな
構成が思い付かないのでとても苦労しそうです。
一度、要求定義をしっかりしてみて設計手順を見直していきたいと思います。

また、疑問が出てきた時にはアドバイス頂けると助かります。
ありがとう御座いました。
解決済み
引用返信 編集キー/
■51549 / inTopicNo.14)  Re[5]: 集約の使い方を教えて下さい。
□投稿者/ 刈歩 菜良 CTP (4回)-(2010/07/08(Thu) 16:36:07)
刈歩 菜良 CTP さんの Web サイト
いまさらですが、お返事おば...

OBJさんのコードだと単なる関連になっちゃいます。
一番最初のレスに書きましたが、

> もう少しわかりやすく言うと、配列と要素の関係です。

なので、コードで書くと以下のような感じになります。
# C#で記述しました。

描画マネージャークラス(ManageDraw.cs)
描画ベースクラス(Draw.cs)
グラフ描画クラス(DrawGraph.cs)
図形描画クラス(DrawShape.cs)

class ManageDraw
{
private List<Draw> drawList;

    public void WriteAll()
    {
        foreach Draw d in drawList
        {
            d.Write();
        }
    }

}

abstract class Draw
{
    public abstract void Write();
}

class DrawGraph : Draw
{

    public override void Write()
    {
    // グラフ描画処理
    }

}

class DrawShape : Draw
{

    public override void Write()
    {
    // 図形描画処理
    }

}

ではでは、



■No51482 (TK さん) に返信
> ■No51471 (刈歩 菜良 CTP さん) に返信
> 
> ご返信有難うございます。
> 
>>もしかして、集約と継承がごっちゃになってます?
>># “サブクラス”っていう言葉が派生クラスを表すのかしらと...
> 
> ごっちゃになっていました、、、
> 
>>ADO.NETはご存知でしょうか?
>>DataSetがマネージャーでその中に入る各DataTableがエンティティーです。
> 
> ADO.NETについては分っていません。
> DataSetとDataTableの関係を調べてみたのですが、ここから集約を理解することができませんでした。
> (ADO.NETの知識がないからだと思います)
> 
> 前回、描画クラスが複数の種類があるのであれば・・・各描画クラスを取りまとめるマネージャを作って集約関係・・・
> とおっしゃっていましたが、例えば、描画クラスにグラフ描画クラスと図形描画クラスの2つがあった場合、下記のように
> なるのが集約なのでしょうか。
> (抽象的な話を具体的にしてしまってすいません、、)
> 
> 描画クラス(Draw.class)
> グラフ描画クラス(DrawGraph.class)
> 図形描画クラス(DrawShape.class)
> 
> Class Draw
> {
> private DrawGraph drawGraph;
> private DrawShape drawShape;
> 
> public void WriteGraph()
> {
> drawGraph.Write();
> }
> 
> public void WriteShape()
> {
> drawShape.Write();
> }
> 
> }
> 
> Class DrawGraph
> {
> 
> public void Write()
> {
> // グラフ描画処理
> }
> 
> }
> 
> Class DrawShape
> {
> 
> public void Write()
> {
> // 図形描画処理
> }
> 
> }

解決済み
引用返信 編集キー/
■51556 / inTopicNo.15)  Re[6]: 集約の使い方を教えて下さい。
□投稿者/ OBJ (8回)-(2010/07/08(Thu) 22:30:22)
No51549 (刈歩 菜良 CTP さん) に返信

ご返信ありがとうございます。
また疑問点が出てきた時にアドバイス頂けたら助かります。

ありがとう御座いました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -