私はSquerylに基づくアプリケーションを持っています。私はモデルをケースクラスとして定義しています。コピーメソッドを持つのが便利だからです。スカラのケースクラス継承
私は2つのモデルが厳密に関連しています。フィールドは同じで、多くの操作は共通で、同じDBテーブルに格納されます。 しかし、2つのケースのどちらかで意味をなさないか、どちらのケースでも意味がありますが、異なるケースがいくつかあります。
これまでは、モデルのタイプを区別するフラグと、モデルのタイプに基づいて異なるすべてのメソッドがifで始まる単一のケースクラスしか使用していませんでした。これは迷惑で、タイプセーフではありません。
私がしたいのは、祖先のケースクラスの共通の動作とフィールドを因数分解し、2つの実際のモデルに継承させることです。しかし、私が理解する限り、ケースクラスから継承することはScalaでは嫌われており、サブクラス自体がケースクラス(私のケースではない)であれば禁止さえあります。
What are the problems and pitfalls I should be aware in inheriting from a case class? Does it make sense in my case to do so?
ノンケースクラスから継承できないのでしょうか、共通の特性を拡張できませんでしたか? – Eduardo
わかりません。フィールドは祖先で定義されています。私はそれらのフィールドに基づいてコピーメソッド、平等などを取得したい。親を抽象クラスとして宣言し、子をケースクラスとして宣言すると、親に定義されたパラメータを考慮に入れますか? – Andrea
私は、抽象親(または形質)とターゲットケースクラスの両方で小道具を定義しなければならないと思います。結局、ロットは定型文ですが、少なくとも – virtualeyes