- nanbu
- 大ベテラン
- 会議室デビュー日: 2004/08/19
- 投稿数: 178
|
投稿日時: 2006-03-04 02:15
南部です。
意図と違ってたらごめんなさい。
というか、抽象的なお題に主観もまざると難解になりますね。
マスタクラス −use→ マスタ操作クラス(3つ)
1.マスタ操作クラス(DAO)は3つあり、異なるロジック
2.操作クラスに対応するマスタクラス(編集?)は3つとも同じ内容
と解釈すると、、
コード: |
|
public enum MasterType
{
}
//ConcreteImplementor
public class ProductEditor : IEditor
{
}
//RefinedAbstraction
public class Master : Edit
{
private IEditor editor;
private Master(IEditor editor)
{
this.editor = editor;
}
public static Master CreateInstance(MasterType type)
{
IEditor editor;
switch(type)
{
//mappingから生成かな?
// editor = new ProductEditor();
}
return new Master(editor);
}
public bool DoEdit()
{
return editor.Edit();
}
}
|
すみません、ベタです。
|
- iStation
- 大ベテラン
- 会議室デビュー日: 2003/12/08
- 投稿数: 158
|
投稿日時: 2006-03-04 12:23
レコード操作クラスを継承するのではなく、包含するのが良いのでは?!
Steve McConnell, "CODE COMPLETE 2," 6.3, (2004)
_________________ IEEE-CSDP 2004-2007
|
- Jitta
- ぬし
- 会議室デビュー日: 2002/07/05
- 投稿数: 6267
- お住まい・勤務地: 兵庫県・海手
|
投稿日時: 2006-03-04 21:34
引用: |
|
じゃんぬねっとさんの書き込み(2006-03-03 20:48)より:
コンストラクタで?? というのが、未だにわかってなかったり... (; ̄- ̄)
|
マスターテーブルなんだから、コンストラクタで、データベースからデータを取り込んでいる、とかではないでしょうか???
|
- iStation
- 大ベテラン
- 会議室デビュー日: 2003/12/08
- 投稿数: 158
|
投稿日時: 2006-03-04 22:20
引用: |
|
R・田中一郎さんの書き込み (2006-03-03 20:18) より:
...
コード: |
|
class 商品マスター : 編集クラス {
public 商品マスター { // コンストラクタ
this.レコード = 商品マスターレコード操作;
}
}
class 社員マスター : 編集クラス {
public 社員マスター { // コンストラクタ
this.レコード = 社員マスターレコード操作;
}
}
class 取引先マスター : 編集クラス {
public 取引先マスター { // コンストラクタ
this.レコード = 取引先マスターレコード操作;
}
}
|
...
|
コード: |
|
class 商品マスター {
public 商品マスター { // コンストラクタ
this.レコード = new 編集クラス(this);
}
}
class 社員マスター {
public 社員マスター { // コンストラクタ
this.レコード = new 編集クラス(this);
}
}
class 取引先マスター {
public 取引先マスター { // コンストラクタ
this.レコード = new 編集クラス(this);
}
}
|
こんな感じでは駄目でしょうか?
_________________ IEEE-CSDP 2004-2007
|
- R・田中一郎
- ぬし
- 会議室デビュー日: 2005/11/03
- 投稿数: 979
|
投稿日時: 2006-03-06 11:06
引用: |
|
じゃんぬねっとさんの書き込み (2006-03-03 20:48) より:
引用: |
|
R・田中一郎さんの書き込み (2006-03-03 19:41) より:
更新、削除の前後に、だらだらと事前チェックが大量に書かれています。
しかし、全く同じ動作をするので、一つにまとめて、だらだらするのを辞めたいの
です。
|
単純に、この「だらだらの部分」を、メソッドとして Extract しちゃダメなんですか?
|
そうですね。その後いろいろと考えてみたのですが、やはりそれば一番良いような
気がしてきました。
ありがとうございました。
引用: |
|
じゃんぬねっとさんの書き込み (2006-03-03 20:48) より:
コンストラクタで?? というのが、未だにわかってなかったり... (; ̄- ̄)
|
コンストラクタは例としてあげただけで、勿論コンストラクタで設定することに拘
っている訳ではなかったのです。
[ メッセージ編集済み 編集者: R・田中一郎 編集日時 2006-03-06 11:10 ]
|
- R・田中一郎
- ぬし
- 会議室デビュー日: 2005/11/03
- 投稿数: 979
|
投稿日時: 2006-03-06 11:09
引用: |
|
Kazukiさんの書き込み (2006-03-03 22:25) より:
編集クラスって何ですか??
|
3つのマスターテーブルを編集するためのクラスです。
タイトル・レコード操作の中身をのぞいて全て同じソースコードで統一できるので、
共通化させたかったのです。
引用: |
|
Kazukiさんの書き込み (2006-03-03 22:25) より:
私もじゃんぬさんが書かれているようにメソッドに
括りだします。
|
そうですね。そうすることにします。ありがとうございました。
|
- R・田中一郎
- ぬし
- 会議室デビュー日: 2005/11/03
- 投稿数: 979
|
投稿日時: 2006-03-06 11:11
引用: |
|
Jittaさんの書き込み (2006-03-03 23:37) より:
今日、MVP for SQL Server な河端さん(川だったら失礼)とお話をしているときに、「O-R マッピングをして、1レコードを追加するのに、Adapter が便利だから Fill で全部持ってきて、1行追加して、Update している。何でそんな効率の悪いことする
|
うーむ、さすがにそんなに効率の悪いことはしていないです。
引用: |
|
Jittaさんの書き込み (2006-03-03 23:37) より:
ソースコードの効率も大事ですが、実行時の効率も大事じゃないでしょうか。そういうところも考えて、もう一度設計を見直してみてはいかがでしょうか。
|
その通りですね。もう一度設計を見直してみることにします。
ありがとうございました。
|
- R・田中一郎
- ぬし
- 会議室デビュー日: 2005/11/03
- 投稿数: 979
|
投稿日時: 2006-03-06 11:15
引用: |
|
nanbuさんの書き込み (2006-03-04 02:15) より:
南部です。
意図と違ってたらごめんなさい。
というか、抽象的なお題に主観もまざると難解になりますね。
|
すみません。質問がわかりにくかったですね。
サンプルをありがとうございました。
確かに、こんな方法もあったんですね。
ありがとうございました。
|