C# と VB.NET の質問掲示板
ASP.NET、C++/CLI、Java 何でもどうぞ
掲示板トップ
C# と VB.NET 入門
新規作成
利用方法
ツリー表示
トピック表示
ランキング
記事検索
過去ログ
ログ内検索
キーワードを複数指定する場合は 半角スペース で区切ってください。
検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
[返信]をクリックすると返信ページへ移動します。
キーワード
/
検索条件
/
(AND)
(OR)
検索範囲
/
(現在のログ)
(全過去ログ)
(過去ログ1)
(過去ログ2)
(過去ログ3)
(過去ログ4)
(過去ログ5)
(過去ログ6)
(過去ログ7)
(過去ログ8)
(過去ログ9)
(過去ログ10)
(過去ログ11)
(過去ログ12)
(過去ログ13)
(過去ログ14)
(過去ログ15)
(過去ログ16)
(過去ログ17)
(過去ログ18)
(過去ログ19)
(過去ログ20)
(過去ログ21)
(過去ログ22)
(過去ログ23)
(過去ログ24)
(過去ログ25)
(過去ログ26)
(過去ログ27)
(過去ログ28)
(過去ログ29)
(過去ログ30)
(過去ログ31)
(過去ログ32)
(過去ログ33)
(過去ログ34)
(過去ログ35)
(過去ログ36)
(過去ログ37)
(過去ログ38)
(過去ログ39)
(過去ログ40)
(過去ログ41)
(過去ログ42)
(過去ログ43)
(過去ログ44)
(過去ログ45)
(過去ログ46)
(過去ログ47)
(過去ログ48)
(過去ログ49)
(過去ログ50)
(過去ログ51)
(過去ログ52)
(過去ログ53)
(過去ログ54)
(過去ログ55)
(過去ログ56)
(過去ログ57)
(過去ログ58)
(過去ログ59)
(過去ログ60)
(過去ログ61)
(過去ログ62)
(過去ログ63)
(過去ログ64)
(過去ログ65)
(過去ログ66)
(過去ログ67)
(過去ログ68)
(過去ログ69)
(過去ログ70)
(過去ログ71)
(過去ログ72)
(過去ログ73)
(過去ログ74)
(過去ログ75)
(過去ログ76)
(過去ログ77)
(過去ログ78)
(過去ログ79)
(過去ログ80)
(過去ログ81)
(過去ログ82)
(過去ログ83)
(過去ログ84)
(過去ログ85)
(過去ログ86)
(過去ログ87)
(過去ログ88)
(過去ログ89)
(過去ログ90)
(過去ログ91)
(過去ログ92)
(過去ログ93)
(過去ログ94)
(過去ログ95)
(過去ログ96)
(過去ログ97)
(過去ログ98)
(過去ログ99)
(過去ログ100)
(過去ログ101)
(過去ログ102)
(過去ログ103)
(過去ログ104)
(過去ログ105)
(過去ログ106)
(過去ログ107)
(過去ログ108)
(過去ログ109)
(過去ログ110)
(過去ログ111)
(過去ログ112)
(過去ログ113)
(過去ログ114)
(過去ログ115)
(過去ログ116)
(過去ログ117)
(過去ログ118)
(過去ログ119)
(過去ログ120)
(過去ログ121)
(過去ログ122)
(過去ログ123)
(過去ログ124)
(過去ログ125)
(過去ログ126)
(過去ログ127)
(過去ログ128)
(過去ログ129)
(過去ログ130)
(過去ログ131)
(過去ログ132)
(過去ログ133)
(過去ログ134)
(過去ログ135)
(過去ログ136)
(過去ログ137)
(過去ログ138)
(過去ログ139)
(過去ログ140)
(過去ログ141)
(過去ログ142)
(過去ログ143)
(過去ログ144)
(過去ログ145)
(過去ログ146)
(過去ログ147)
(過去ログ148)
(過去ログ149)
(過去ログ150)
(過去ログ151)
(過去ログ152)
(過去ログ153)
(過去ログ154)
(過去ログ155)
(過去ログ156)
(過去ログ157)
(過去ログ158)
(過去ログ159)
(過去ログ160)
(過去ログ161)
(過去ログ162)
(過去ログ163)
(過去ログ164)
(過去ログ165)
(過去ログ166)
(過去ログ167)
(過去ログ168)
(過去ログ169)
(過去ログ170)
(過去ログ171)
(過去ログ172)
(過去ログ173)
(過去ログ174)
(過去ログ175)
(過去ログ176)
(過去ログ177)
(過去ログ178)
(過去ログ179)
強調表示
/
ON
(自動リンクOFF)
結果表示件数
/
20件
30件
40件
50件
100件
記事No検索
/
ON
大文字と小文字を区別する
No.75750 の関連記事表示
ヒット / 8件
(1-8 を表示)
<<
0
>>
■75750
クラスの依存関係について VB.NET
□投稿者/ kouei3 -
(2015/04/29(Wed) 18:31:06)
>
分類:[.NET 全般]
こんにちは
ファイルのアップロード機能がついてなかったのでお手数かと思いますが
下記、ドライブで確認して下さい。
VB.NETのWindowsフォームアプリケーションにて
MainMenuとMainMenu管理用クラス
上記に付随し各、サブシステムとサブシステム管理用クラス
データベースとのやり取りを行う管理用クラスを作成しようかと考えています。
質問事項は下記です。
データベース管理用クラスですが、現在ですとMainMenuForLogicクラスで
データベース管理用クラスのインスタンスを生成し、各クラスのコンストラクタで
参照を持ち回りサブシステムで使用する予定です。
そうすると、データーベース管理クラスへの依存がかなり強まり
慣習といいますか、主流のやり方として他にどのような管理手法があるか
気になっています。何かあれば教えて下さい。よろしくお願いします。
https://drive.google.com/file/d/0B0E1t-2wZXtnMXQ4YVE0Y00wRlk/view?usp=sharing
親記事 /過去ログ128より /
関連記事表示
削除チェック/
■75793
Re[1]: クラスの依存関係について VB.NET
□投稿者/ Azulean -
(2015/05/01(Fri) 21:20:59)
■
No75750
(kouei3 さん) に返信
> そうすると、データーベース管理クラスへの依存がかなり強まり
> 慣習といいますか、主流のやり方として他にどのような管理手法があるか
> 気になっています。何かあれば教えて下さい。よろしくお願いします。
主流と言われるとコメントが難しいのですが、1つの実装に集中してしまっている現象を緩和させる策としてコメントします。
そのサブシステムが、データベースそのものに依存しないように考えることでしょうか。
依存関係逆転の法則
http://d.hatena.ne.jp/asakichy/20090128/1233144989
・サブシステムが必要とする振る舞いをインターフェースで定義する。
・サブシステムのオブジェクトを生成するときのそのインターフェースを実現したクラスのオブジェクトを渡す。
・インターフェースを実現するクラスはデータベース管理クラスに処理を委譲する。
このようにすると、サブシステムはデータベース管理クラスに依存しなくなり、変更の影響を受けづらくなります。
記事No.75750 のレス /過去ログ128より /
関連記事表示
削除チェック/
■75803
Re[2]: クラスの依存関係について VB.NET
□投稿者/ kouei3 -
(2015/05/04(Mon) 16:02:19)
>
■
No75793
(Azulean さん) に返信
> ■
No75750
(kouei3 さん) に返信
>>そうすると、データーベース管理クラスへの依存がかなり強まり
>>慣習といいますか、主流のやり方として他にどのような管理手法があるか
>>気になっています。何かあれば教えて下さい。よろしくお願いします。
>
> 主流と言われるとコメントが難しいのですが、1つの実装に集中してしまっている現象を緩和させる策としてコメントします。
> そのサブシステムが、データベースそのものに依存しないように考えることでしょうか。
>
> 依存関係逆転の法則
>
http://d.hatena.ne.jp/asakichy/20090128/1233144989
>
> ・サブシステムが必要とする振る舞いをインターフェースで定義する。
> ・サブシステムのオブジェクトを生成するときのそのインターフェースを実現したクラスのオブジェクトを渡す。
> ・インターフェースを実現するクラスはデータベース管理クラスに処理を委譲する。
>
> このようにすると、サブシステムはデータベース管理クラスに依存しなくなり、変更の影響を受けづらくなります。
回答ありがとうございます。
上記件で、もし実際のコード例があるサイト等ありましたら教えて下さい。
インターフェイスの持ち回りが少し判り辛かったです。
記事No.75750 のレス /過去ログ128より /
関連記事表示
削除チェック/
■75804
Re[3]: クラスの依存関係について VB.NET
□投稿者/ Azulean -
(2015/05/04(Mon) 18:07:40)
■
No75803
(kouei3 さん) に返信
> 上記件で、もし実際のコード例があるサイト等ありましたら教えて下さい。
> インターフェイスの持ち回りが少し判り辛かったです。
その法則の名前で検索してみましたか?
独自の用語というわけではありませんから、いくつか Web サイトが見つかるはずです。
それでもわかりづらいというのであれば、その旨書き添えてください。
記事No.75750 のレス /過去ログ128より /
関連記事表示
削除チェック/
■75812
Re[4]: クラスの依存関係について VB.NET
□投稿者/ kouei3 -
(2015/05/04(Mon) 22:11:06)
>
■
No75804
(Azulean さん) に返信
> ■
No75803
(kouei3 さん) に返信
>>上記件で、もし実際のコード例があるサイト等ありましたら教えて下さい。
>>インターフェイスの持ち回りが少し判り辛かったです。
>
> その法則の名前で検索してみましたか?
> 独自の用語というわけではありませんから、いくつか Web サイトが見つかるはずです。
> それでもわかりづらいというのであれば、その旨書き添えてください。
すいません。
インターフェイスについては理解しております。
しかしながら、インターフェイスを疎結合に利用する手は検索したWEB上で
数多にありながら、データーベースを管理するクラス(ADO等をラップした)での
メリットがあまり見出せなかった為です。実際に開発環境ではない自分の所で
作成しましたが、インターフェイスの参照を持ち回りましたが、管理クラスで
既にある程度の改修を想定したコーディングをしていましたし、使用する側では
固定した操作を強制?操作ガイドラインの遵守を行っていた為メリットがあるのかと
思案してしまいました。
しかしながら、DIのメリットは十分に理解しました。
幾多のprojectに関わるPG,SEにはかなり優良な手法かと思います。
使う機会はあるやもしれませんが、端から端までDI手法で!とは思わぬ様研鑽いたします。
ありがとうございました。
記事No.75750 のレス /過去ログ128より /
関連記事表示
削除チェック/
■75813
Re[5]: クラスの依存関係について VB.NET
□投稿者/ Azulean -
(2015/05/04(Mon) 22:28:27)
2015/05/04(Mon) 23:00:22 編集(投稿者)
■
No75812
(kouei3 さん) に返信
> しかしながら、インターフェイスを疎結合に利用する手は検索したWEB上で
> 数多にありながら、データーベースを管理するクラス(ADO等をラップした)での
> メリットがあまり見出せなかった為です。
データベースの構造を知らないといけないサブシステムであれば、その理解で否定しません。
しかし、本当にそうなのですか?
サブシステムがやりたいことは、データベースの構造・テーブルなどを熟知しないと実装できないことなんですか?
たとえば、ユーザーを追加したいとか、抽象的な言葉で表せる範囲にとどまらないのでしょうか?
仮に「ユーザーの追加がやりたいだけであり、データベースの具体的な操作は知らなくて良い」なら、その機能を提供するインターフェースをサブシステムが必要とする形にしてしまえば、サブシステムからデータベース管理クラスへの直接依存をなくせます。
直接依存しないことによって、ユーザーの追加時にデータベース操作でやらないといけないことが増えたとしても、サブシステム側のコードを触る必要がなくなるというメリットがあります。
(もちろん、パラメーターが増えるなど、サブシステム側も触らないといけない事情があるときは両方触ることになります)
> 実際に開発環境ではない自分の所で
> 作成しましたが、インターフェイスの参照を持ち回りましたが、管理クラスで
> 既にある程度の改修を想定したコーディングをしていましたし、使用する側では
> 固定した操作を強制?操作ガイドラインの遵守を行っていた為メリットがあるのかと
> 思案してしまいました。
どの程度やりたいか、そのコードを今後どの程度活かしたいか、今かけられるコストは見合うかなどによって決まってくるので、当人が判断するほかなく、kouei3 さんがメリットないと思ったのであれば、致し方ありません。
考え方を変えたやり方になるので、どうしても最初にリファクタリングが入ってしまいます。
それによって生じる設計・実装工数、メンバーの教育コスト、流れを変えたことによる検査工数が、将来の設計・実装・検査工数を減らすことにつながらないのであれば、やる価値はありません。
記事No.75750 のレス /過去ログ128より /
関連記事表示
削除チェック/
■75833
Re[1]: クラスの依存関係について VB.NET
□投稿者/ Jitta -
(2015/05/07(Thu) 19:34:33)
■
No75750
(kouei3 さん) に返信
> そうすると、データーベース管理クラスへの依存がかなり強まり
何が、どういう状態である事を、依存が強いと考えていらっしゃるのでしょう?
書かれていることからは、データベース管理クラスを各サブシステムが知っている状態を
強い依存と捉えていらっしゃるように思われます。
それを、どうしたいと考えていますか?
つまり、クラスをしっているのはダメ、インターフェイスならイイのですか?
それとも、すべてのサブシステムから要望を上げ、要望を汲み取る様な実装にしたいのでしょうか?
記事No.75750 のレス /過去ログ128より /
関連記事表示
削除チェック/
■75836
Re[2]: クラスの依存関係について VB.NET
□投稿者/ kouei3 -
(2015/05/07(Thu) 22:27:35)
■
No75833
(Jitta さん) に返信
> ■
No75750
(kouei3 さん) に返信
>>そうすると、データーベース管理クラスへの依存がかなり強まり
>
> 何が、どういう状態である事を、依存が強いと考えていらっしゃるのでしょう?
> 書かれていることからは、データベース管理クラスを各サブシステムが知っている状態を
> 強い依存と捉えていらっしゃるように思われます。
> それを、どうしたいと考えていますか?
> つまり、クラスをしっているのはダメ、インターフェイスならイイのですか?
> それとも、すべてのサブシステムから要望を上げ、要望を汲み取る様な実装にしたいのでしょうか?
ご両名へ
ありがとうございます。
実装方法を知る事ではなく、何か活気的な管理手法があるのか知りたく質問させて頂きました。
AzuleanさんからDIに関して教えて頂きましたのでひとまずそれを、可否は別として
実績積みたく思っています。
Jittaさん
レス読み返して、明確な管理手法等で質問事項が出ればまたご指導下さい。
解決済みとさせてください。
記事No.75750 のレス / END /過去ログ128より /
関連記事表示
削除チェック/
<<
0
>>
パスワード/
-
Child Tree
-