(Has-A vs. Is-A)如何布局我的程序架构? (JAVA)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了(Has-A vs. Is-A)如何布局我的程序架构? (JAVA),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1587字,纯文字阅读大概需要3分钟。
内容图文
![(Has-A vs. Is-A)如何布局我的程序架构? (JAVA)](/upload/InfoBanner/zyjiaocheng/796/ff0cb9d532e94e1486120f1b6cd19b1d.jpg)
我有三个组成部分:
>界面:类别
>父类:MainCategory
>子类:子类别
我知道:
> MainCategory IS-A类别
> MainCategory Has-A SubCategory
>子类别IS-A类别
但是,当我尝试使用extends和implements在我的代码中构造它们时,我有点困惑.以下是我到目前为止的情况,请告诉我这是否有意义或是否应以其他方式完成?谢谢.
public interface Category{}
public class MainCategory implements Category{}
public class SubCategory extends MainCategory implements Category {}
我想知道我是否正确地思考它.此外,每个MainCategory将包含多个子类别,因此使用扩展是正确的还是不意味着聚合?谢谢.
解决方法:
根据你提到的内容:
> MainCategory IS-A类别
> MainCategory Has-A SubCategory
>子类别IS-A类别
SubCategory不应继承MainCategory.它应该只是实现Category接口.如果SubCategory和MainCategory之间有很多共同的代码,我怀疑你会这样,那么我可以建议另一种布局:
class Category {
private List<SubCategory> children = new ArrayList<SubCategory>();
public List<SubCategory> getSubCategories() {
return children;
}
public void addSubCategory(SubCategory child) {
child.setParent(this);
children.add(child);
}
public Category getParent() {
return null;
}
}
class SubCategory extends Category {
private Category parent = null;
public Category getParent() {
return parent;
}
public void setParent(Category parent) {
this.parent = parent;
}
}
任何类别都可能有SubCategory,但只有SubCategory可以有父类.请注意,Category不是抽象类.我的想法是可以直接实例化类别.它将是您的SubCategory类中的大多数逻辑的根类别和基础. SubCategory可以覆盖特定于SubCategory的任何行为.如果你发现你必须在SubCategory中重载很多行为,那么将Category作为一个抽象类并改为创建一个MainCategory,但我怀疑这不是你的情况.
希望有所帮助!
内容总结
以上是互联网集市为您收集整理的(Has-A vs. Is-A)如何布局我的程序架构? (JAVA)全部内容,希望文章能够帮你解决(Has-A vs. Is-A)如何布局我的程序架构? (JAVA)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。