クラスの設計
クラス設計のやり方がわからない
今まで、変数や関数だけでコーディングをしていましたが、
可読性が悪く、クラスを作って可読性が向上できないかと思い、クラス設計にチャレンジしているのですが
いまいち、どのようにクラスを設計すればよいかわかりません。
よく、車を例に以下のような説明があります。車に関しては
すでに現実世界にある概念なのでクラスのイメージがしやすいです。
class car{
constructor(name,ridingNunmberOfPeople){
this.name=name;
this.ridingNunmberOfPeople=ridingNunmberOfPeople
}
run(speed){
console.log('最高速度'+speed+'km/hで走行');
};
}
const car1 = new car("トラック",3);
const car2 = new car("軽自動車", 5);
console.log(car1);//{name: 'トラック', ridingNunmberOfPeople: 2}
console.log(car2);//{name: '軽自動車', ridingNunmberOfPeople: 5}
car1.run(100);//最高速度100km/hで走行
car2.run(80);//最高速度80km/hで走行
私が作りたいクラスは、車のような分かりやすいものではなく
「グラフを切り替えるための機能がまとまったもの」をクラスにしたいと考えております。
【イメージ】
①「期間」というテキストボックスに数値をinput。
② ①の数値の単位が年単位なのか月単位なのか日にち単位なのかをinput。
③ 「期間」がどこからスタートなのかを選ぶ。
④ グラフのX軸の表示を更新
みたいな処理をクラスで作りたいと思っております。
車のようなわかりやすい概念ではないため、どのようにクラスを設計すればよいか困っております。
この場合、皆様はどのようにしてクラスを設計しますか?
そもそも、「処理をまとめるために」処理にフォーカスしてクラスを作る考え方が違うのでしょうか?
「もの」という概念をまず固めて、概念に対しフォーカスしてクラスを設計し、
その概念からあぶれた処理はクラス内に記載せず、別途関数で定義するみたいな感じなのでしょうか?
質問が冗長で申し訳ありません。
ご教授いただけると幸いです。
(クラス設計とテーブ設計は似ている?)