我开始研究一些小项目,目前正在考虑建筑领域的最佳方法。 假设我有一个具有很多属性的类,我在数据库中从控制器中检索这些属性。
Building building = BuildingsBLL.GetBuilding(buildingID);
建筑物属于不同类型,具有不同的属性集 我看到两个选择:
我可以通过大量代码将Bulding
传递给公共视图并显示/
根据建筑类型隐藏页面上的特定块(如果建筑类型为blablabla ... ,则使用)。或
我可以将建筑物转换为其他类型(School
或Hospital
或smth
else)并以最少的代码将其传递给某个视图。
所以在第一种情况下,我只需要一个视图而不需要模型(?),在第二种情况下,我需要为每种建筑类型单独的模型和视图。
在我看来,第二种情况更可取。但也许我错过了一些东西,上述方法根本无法使用?
答案 0 :(得分:1)
所以在第一种情况下我只需要一个视图而没有模型(?)和 第二种情况我需要为每种建筑类型单独的模型和视图。
我会按照以下方式进行操作 - 拥有抽象Building
模型,然后从SchoolBuilding
模型继承HospitalBuilding
和Building
模型。
然后在前端,如果我在学校和医院建筑物上都有很多操作,那么我将为两者分别设置控制器。但是如果操作要少得多,那么我将只有楼宇控制器,其中不同的行动对应于学校和医院模型。根据可重用性的数量,我将提取医院和学校行动的部分观点。