Coding style 哲学对象/属性参数查询
我正在看我写的一些代码,并思考“我应该将该对象传递到该方法中,还是仅仅传递它的一些属性?” 让我解释一下: 这个对象大约有15个属性-用户输入。然后我有大约10种方法,最多使用5种输入。现在,如果每个方法都有一个参数“用户输入对象”,那么界面看起来就干净多了。但每个方法并不需要所有这些属性。我可以传递每个方法所需的属性 我问这个问题的事实表明我承认我可能做错了事情 讨论……) 编辑:要添加计算,请执行以下操作: 用户可以在网页上输入有关其房屋和花园的详细信息。门的数量、房间数量和其他此类性质的财产(总共15个) 这些详细信息作为简单的整数属性存储在“HouseDetails”对象上 “HouseDetails”的实例被传递到“HouseRequirementScalCalculator”中。该类有10个私有方法,如“计算地毯面积”、“caclulateExtensionPotential”等 对于我的查询示例,让我们使用“CalculateAreaOfCarpet”方法Coding style 哲学对象/属性参数查询,coding-style,Coding Style,我正在看我写的一些代码,并思考“我应该将该对象传递到该方法中,还是仅仅传递它的一些属性?” 让我解释一下: 这个对象大约有15个属性-用户输入。然后我有大约10种方法,最多使用5种输入。现在,如果每个方法都有一个参数“用户输入对象”,那么界面看起来就干净多了。但每个方法并不需要所有这些属性。我可以传递每个方法所需的属性 我问这个问题的事实表明我承认我可能做错了事情 讨论……) 编辑:要添加计算,请执行以下操作: 用户可以在网页上输入有关其房屋和花园的详细信息。门的数量、房间数量和其他此类性质的财
- 我应该传递“HouseDetails”对象吗
- 或者我应该通过“HouseDetails.MainRoomArea、HouseDetails.KitchenArea、HouseDetails.BathroomArea”等吗
另外,想象一下,如果您在此对象中添加和删除属性,代码将受到多大的影响。保持简单。传递单个属性-在每种情况下都不同-看起来相当混乱。我宁愿传递整个物体 记住,你对自己的处境没有给予足够的洞察力。也许试着描述一下这些东西的实际用途?这个有15个属性的对象是什么?是同一个对象上的“使用最多5个输入的10个方法”,还是其他方法 在问题被编辑之后 我肯定应该传递整个对象,并在Calculator类中进行必要的计算 另一方面,您可能会发现领域驱动设计是一个有吸引力的选择(http://en.wikipedia.org/wiki/Domain-driven_design). 关于这些原则,您可以将calculator中的方法添加到HouseDetails类中。域驱动设计是一种非常好的应用程序编写风格,这取决于这种方式对您的清洁程度。可能重复:我(可能我们)理解得很好。我认为应该传递HouseDetails对象,而不是单个参数。我在下面相应地修改了我的答案。