`Employee`クラスはどのように設計されるべきですか?
私は従業員を管理するためのプログラムを作成しようとしています。ただし、Employeeクラスの設計方法を理解することはできません。私の目標は、Employeeオブジェクトを使用してデータベース上の従業員データを作成および操作できるようにすることです。 私が考えた基本的な実装は、この単純な実装でした: class Employee { // Employee data (let's say, dozens of properties). Employee() {} Create() {} Update() {} Delete() {} } この実装を使用すると、いくつかの問題が発生しました。 ID従業員のは、私は、新しい従業員を記述するためのオブジェクトを使用するのであれば、何があるだろう、データベースによって与えられていないID既存の従業員を表すオブジェクトはながら、まだ格納するだろう持っていますID。そのため、オブジェクトを説明するプロパティと、オブジェクトを説明しないプロパティがあります(SRPに違反していることを示すことができますか?新しいクラスと既存の従業員を表すのに同じクラスを使用しているため...)。 Create一方、この方法は、データベース上の従業員を作成することになっているUpdateとは、Delete既存の従業員(ここでも、上で動作するようになっているSRP ...)。 「作成」メソッドにはどのようなパラメーターが必要ですか?すべての従業員データまたはEmployeeオブジェクトのための数十のパラメーター? クラスは不変であるべきですか? どのようにUpdate動作しますか?プロパティを取得してデータベースを更新しますか?または、「古い」オブジェクトと「新しい」オブジェクトの2つのオブジェクトを取り、それらの違いでデータベースを更新しますか?(答えは、クラスの可変性に関する答えと関係があると思います)。 コンストラクターの責任は何ですか?必要なパラメーターは何ですか?idパラメーターを使用してデータベースから従業員データを取得し、プロパティを設定しますか? それで、あなたが見ることができるように、私は私の頭の中に少し混乱を持っています、そして、私は非常に混乱しています。そのようなクラスがどのように見えるべきかを理解してください。 このような頻繁に使用されるクラスが一般的にどのように設計されているかを理解するためだけに、意見を望まないことに注意してください。