###前提・実現したいこと
各フィールドがメソッドでどれだけセットで利用されているかが凝縮度の指標となっていますがフィールドを内部クラスに移動させることは凝縮度の向上と見なせますか
以下、凝縮度の式
http://www.itmedia.co.jp/im/articles/0510/07/news106.html
###該当のソースコード
java
1//内部クラスへ移動前 2public class Monster{ 3 private final String name; 4 private final int maxHP; 5 private int hp; 6 private Item item; 7 8 public Monster(String name, int hp, Item item) { 9 super(); 10 this.name = name; 11 this.hp = hp; 12 this.maxHp = hp; 13 this.item = item; 14 } 15 public HitPoint(int hp){ 16 this.hp = value; 17 } 18 public void injured(int damage){ 19 hp -= damage; 20 } 21 public void cured(int recoveryPoint){ 22 hp = Math.min((recoveryPoint+ value), maxHp); 23 } 24 public int getValue(){ 25 return hp; 26 } 27//...略 28} 29//********************************* 30//内部クラスへ移動後 31public class Monster { 32 //定数はインスタンス化するクラスの方に置いておく? 33 //フィールドを内部クラスとすれば良い 34 private final String name; 35 private final int maxHp; 36 //fieldのインスタンンス化 37 //private int hp; 38 public HitPoint hitPoint; 39 //itemを持つクラスを持つようにしてワンクッション置く 40 //または書籍でみた:sqlの例のようにオブジェクト 41 private Item item; 42 43 public Monster(String name, int hp, Item item) { 44 super(); 45 this.name = name; 46 this.hitPoint = new HitPoint(hp); 47 this.maxHp = hp; 48 this.item = item; 49 } 50 51 //hpに関する操作を内部クラスにまとめる 52 class HitPoint{ 53 private int value; 54 55 public HitPoint(int value){ 56 this.value = value; 57 } 58 public void injured(int damage){ 59 value -= damage; 60 } 61 public void cured(int recoveryPoint){ 62 value = Math.min((recoveryPoint+ value), maxHp); 63 } 64 public int getValue(){ 65 return value; 66 } 67 68 } 69 70 71} 72 73 74
###試したこと
課題に対してアプローチしたことを記載してください
###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。