###前提・実現したいこと
Classの作り方に関して質問です。
既存のプロジェクトをリファクタリングして、MVC(orMVVM)に沿ってClassを作りたいです。
既存のプロジェクトは、データを読み込み、処理して、ファイルに保存しています。
担当のプログラマーはわたしひとりです。
作成した既存のプログラマーは現在はいません。
該当のプロジェクトはプロトタイプで、扱うデータはほぼ完全に新規、モードも全面的に変更です。
IsDemo(デモ)は、プロトタイプ用のモードなので削除するなど、全面的に変更が必要です。
それなら、極力MVC的に変更するとよいかと思います。
どのように書き換えるのも自由です。
現在このようになっています。
Models\DataManager.cs(1ファイル 320行) namespace Project.Models { public static class DataManager { // 商品 public static List<ProductModel> ProductModels { get; set; } // デモモード public static bool IsDEMO { get; set; } // リカバリーモード public static bool IsRecovery { get; set; } /// <summary> /// 履歴の保存処理 /// </summary> public static void WriteHistory() { } /// <summary> /// 履歴の読み込み処理 /// </summary> public static void ReadHistory() { } } public class ProductModel { // 商品コード public int ProductNumber { get; set; } // 商品名 public string ProductName { get; set; } // 価格 public int Price { get; set; } } }
これを、
商品とモードで別のModelにする、フィールドとプロパティはModel、メソッドはControllerにするという観点で、次のように書き換えようと考えています。
この方針、ご意見をお聞かせください。
Models\ProductsModel.cs namespace Project.Models { public static class ProductsModel { // 商品 public static List<ProductModel> ProductModels { get; set; } } } Models\ProductModel.cs namespace Project.Models { public class ProductModel { // 商品コード public int ProductNumber { get; set; } // 商品名 public string ProductName { get; set; } // 価格 public int Price { get; set; } } } Controller\ProductsController.cs namespace Project.Controller { public class ProductsController { /// <summary> /// 履歴の保存処理 /// </summary> public static void WriteHistory() { } /// <summary> /// 履歴の読み込み処理 /// </summary> public static void ReadHistory() { } } } Models\ModeModel.cs namespace Project.Models { public class ModeModel { // 標準モード public static bool IsNormal { get; set; } // デモモード public static bool IsDEMO { get; set; } // リカバリーモード public static bool IsRecovery { get; set; } } }
###補足情報(言語/FW/ツール等のバージョンなど)
Visual Studio 2015 Pro
Windows10
何を作っているのですか? WPF? ASP.NET MVC? その他?