- PR -

セッターゲッターのみのクラスの名称

投票結果総投票数:48
DTO 11 22.92%
Entity 9 18.75%
Object 1 2.08%
ValueObject 12 25.00%
使用目的によりDTO又はEntity 2 4.17%
その他 13 27.08%
  • 投票は恣意的に行われます。統計的な調査と異なり、投票データの正確性や標本の代表性は保証されません。
  • 投票結果の正当性や公平性について、@ITは一切保証も関与もいたしません。
投稿者投稿内容
すめし
会議室デビュー日: 2005/12/08
投稿数: 6
投稿日時: 2007-09-26 14:18
> Tdnr_Symさん

なるほど。
「貧血」というニュアンスがわかりませんでした。
「無気力」でもあってるでしょうか?そのほうがピンときます。

今の業務でも、ただ画面の値を入力チェックしてDBに保存するだけのような機能のとき「ドメインモデル貧血症」で指摘されているような作りになっていました。
確かにオブジェクト指向っぽくないなぁと感じてはいましたが、
このような微妙に定型なんだけど定型にできないようなロジックで
しかも再利用なんてほとんど出来ない場合、
なんでもいいから目的が達成できればいいのかな?と思ってます。
すめし
会議室デビュー日: 2005/12/08
投稿数: 6
投稿日時: 2007-09-26 14:19
> Tdnr_Symさん

なるほど。
「貧血」というニュアンスがわかりませんでした。
「無気力」でもあってるでしょうか?そのほうがピンときます。

今の業務でも、ただ画面の値を入力チェックしてDBに保存するだけのような機能のとき「ドメインモデル貧血症」で指摘されているような作りになっていました。
確かにオブジェクト指向っぽくないなぁと感じてはいましたが、
このような微妙に定型なんだけど定型にできないようなロジックで
しかも再利用なんてほとんど出来ない場合、
なんでもいいから目的が達成できればいいのかな?と思ってます。
Tdnr_Sym
ぬし
会議室デビュー日: 2005/09/13
投稿数: 464
お住まい・勤務地: 明石・神戸
投稿日時: 2007-09-26 17:23
こんにちは。

引用:

すめしさんの書き込み (2007-09-26 14:18) より:
「貧血」というニュアンスがわかりませんでした。
「無気力」でもあってるでしょうか?そのほうがピンときます。



anemic(YAHOO辞書)
引用:

[形] 1 貧血(症)の. 2 無気力の



たしかに「無気力」の訳のほうがいいですね。
何の責務もない・自分では何もしない・受身のデータクラスには、
「無気力オブジェクト」のほうがシックリきますね。
でも、すでに日本では「貧血(症)」として広まってますし…

まあ「貧血」のほうが、インパクトがあり皮肉っぽく聞こえますが。
アンチパターンのパターン名には、へんな名前が多いです。
「肥満児」とか「お邪魔妖怪」とか…
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-09-26 19:23
引用:

Tdnr_Symさんの書き込み (2007-09-26 11:30) より:

データクラスが全く悪いものだとは思いませんが(場合によっては必要だと思います)、
下記の引用のような、痛い(オブジェクト指向しているつもりで、実はそうなっていない)状況で、出現するデータクラスのことを指す…と私は解釈しています。


早速、使用を禁じるルールを作ろうと思います (笑)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-09-26 19:39
引用:

すめしさんの書き込み (2007-09-26 10:45) より:

じゃんぬさんは.NET以外の何かでは何と呼んでいるんでしょう?


エンティティ クラスと呼んでいた時期があったような気がしますが (正しい呼び名かわかりません)、正直なところ意識して定めていなかったと思います。 Java や PHP などなどその他の言語での経験が短いからかもしれません。 (.NET もさほど長くないので参考にならないかもしれません... orz)

# ValueObject とかですと .NET では値型の何かだと勘違いされそうですね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
kuma
大ベテラン
会議室デビュー日: 2004/02/25
投稿数: 110
投稿日時: 2007-09-27 00:09
ValueObjectに1票
ここ5年Javaばかりですが、結構使う気もしますね。
引数が4つ以上になるようなメソッドがあると専用Objectをつくってます。
ちなみに独自解釈ですが
DTOはレイヤを跨ぐ場合、
EntityはO/Rマップする際のテーブル情報を格納するObject
を指すようにしてます。
Tdnr_Sym
ぬし
会議室デビュー日: 2005/09/13
投稿数: 464
お住まい・勤務地: 明石・神戸
投稿日時: 2007-09-27 01:13
こんばんは。

意外とValueObjectの票が多いんですね。
まあ、同じ概念でもプログラミング言語によって呼び方が違ったりするので、
人それぞれ呼び方がマチマチなのは仕方ないとは思いますが。
(例)
基底・派生/スーパー・サブ
構造体/レコード型/ユーザー定義型

私にとってのValueObject(値オブジェクト)は、下記の記述とほぼ同じ感じです。

C++ クラス設計に関するノート
引用:

値オブジェクトとは
・インスタンス自体よりも、保持するデータ値が重要な意味をもつ。
・インスタンスが異なっても、同じ値を保持していれば同じオブジェクトと見なす。
・必要に応じて自由にコピーを作ることができる。
・int や double などの基本データ型と同じセマンティックスで使用される。
・日付や時間、お金、数量などは一般に「値オブジェクト」です。標準ライブラリでは、string や vector、map などの STL コンテナがこのカテゴリに入ります。



ValueObject
引用:

お金とか日付の範囲のような小さい単純なオブジェクトの同一性はアイデンティティによるものではない
様々な種類のオブジェクトシステムでは、リファレンスオブジェクトと値オブジェクト(Value Object)を区別するととても便利だということに気づいた。この2つのうちの値オブジェクトは通常、とても小さいもので、純粋なオブジェクト指向ではない多くの言語に用意されているプリミティブ型に似ている。



元々C++ユーザーな私にとって、ValueObject(値オブジェクト)を私なりに説明すると
・コピーコンストラクタや代入演算子、(必要に応じて比較演算子も)を実装するようなクラス。
・基本的に継承やほかのクラスとの関連をもたない小さなクラス(※でもコンポジット集約ならOKかも)。
という感じになります。

セッター・ゲッターしかないようなクラスは、私にとってC言語でいう「構造体」と同義です。

スキルアップ/キャリアアップ(JOB@IT)