java - 如何根据特定需求创建接口
问题描述
我会尽力解释这一点,因为我也没有 100% 理解这个问题。
我被要求创建一个界面来构建两个必要条件,涉及两个概念,称为众多家庭和内陆公司。众多家庭是一个拥有 4 个以上儿子的家庭,而内陆公司是来自内陆地区的公司。系统应该能够为众多家庭管理孩子数量的定义,并保留一个将内陆地区与一个值相关联的列表(这个值在上下文中并不重要,但需要存在) .
public double taxReduction()
许多家庭和内陆地区应该实施一种方法,该方法将在稍后解释。
现在很重要的一点是,已经存在 2 个名为Taxpayer
and的类Company
,其中包含一些我认为对这个问题无关紧要的变量:
public class Taxpayer {
...
}
public class Company {
...
}
大家庭关乎纳税人,内地关乎公司。我不太了解接口,但我的想法是针对每个定义:
许多家庭 - 创建一个
private int sons
具有各自 get 和 set 的变量,该方法public double taxReduction()
返回每个 son 的百分比if(this.sons>4)
,否则为 0(这些值仍有待定义,但对于整个图片来说它们并不重要)。Inland Company - 创建另一个名为 Region 的类:
public Class Region{ private String name; private boolean inland; //if it's an inland region }
public Region region;
使用 get 和 set 以及相同的 taxReduction 方法添加一个变量。
现在的问题是(如果以上是正确的):
- 我的界面怎么写?我只是添加
double taxReduction;
到界面吗? - 我将如何保留内陆地区的清单?我是在我的主要地区创建一个包含所有内陆地区的列表,还是应该在其他地方初始化它?
观察:该方法taxReduction()
将用于计算一些数字,在这些数字中,我需要检查我是否正在访问代表众多家庭或内陆公司的实例。我真的不需要知道如何检查我所在的实例,因为我知道如何做到这一点,只是知道如何真正对所有这些接口问题进行排序。
解决方案
这是我的两分钱:
我的界面怎么写?我只是添加双重减税吗?到接口?
只需使用double getTaxReduction()
方法创建您的界面。
在您的实施中,TaxPayer
或者Company
您为它提供具体的主体。
我将如何与内陆地区保持清单?我是在我的主要地区创建一个包含所有内陆地区的列表,还是应该在其他地方初始化它?
这真的取决于。
Region
values 是一个缓慢变化的维度(很少更新)。
您必须质疑自己:如果应用程序走向国际(新区域添加为国家/地区的新分支),那么Region
绝对应该将其存储在数据库中,您可以在其中动态管理它。
如果Region
值有些固定(在一个国家/地区使用,Region
定义很少改变),那么最好的地方是 enum Region
。如果你想修改它为什么运行,你可以将它与一个properties
文件配对,ReloadableResource
就像在 Spring
推荐阅读
- c# - cosmos OS问题“不支持PS/2”
- vuetify.js - 我下载哪个 vuetify 文件以包含在我的项目中
- nuxt.js - 在 nuxt fetch 中获取“无法对任意非 POJO 进行字符串化”
- html - 添加位置固定会破坏导航的对齐方式
- sql - 通过具有分组并合并回原始表
- git - 如何区分 pom.xml 文件并以编程方式忽略与快照与发布版本相关的更改?
- sequelize.js - 使用 belongsToMany 无法正确使用多对多
- javascript - 使用 firebase auth 模拟器进行单元测试需要真实的服务帐户?
- android - 如何在android studio中检查连接
- python - 什么是`sha256`,我应该把它的值放在anaconda包的`meta.yaml`文件中