一篇文章让你清楚知道什么是聚合、组合、依赖

一篇文章让你清楚知道什么是聚合、组合、依赖类之间的关系 依赖 泛化 继承 实现 关联 聚合与组合 依赖只要是在类中用到了对方 那么他们之间就存在依赖关系 如果没有对方 连编绎都通过不了

欢迎大家来到IT世界,在知识的湖畔探索吧!

类之间的关系:依赖、泛化(继承)、实现、关联、聚合与组合。

依赖

只要是在类中用到了对方,那么他们之间就存在依赖关系。如果没有对方,连编绎都通过不了。

举个栗子:

public class Department { } public class IDCard { } public class Person { } public class PersonDao { } public class PersonServiceBean { private PersonDao personDao;// 类 public void save(Person person) { } public IDCard getIDCard(Integer personid) { return null; } public void modify() { Department department = new Department(); } } # 只要是在类中用到了对方,不管你怎么个写法,那么他们之间就存在依赖关系。如果没有对方,连 编绎都通过不了。这就叫依赖。 

欢迎大家来到IT世界,在知识的湖畔探索吧!

总结造成依赖关系的行为:

  1. 类的成员属性
  2. 方法的返回类型
  3. 方法接收的参数类型
  4. 方法中使用到

泛化关系

泛化关系实际上就是继承关系,他是依赖关系的特例

欢迎大家来到IT世界,在知识的湖畔探索吧!public abstract class DaoSupport{ public void save(Object entity){ } public void delete(Object id){ } } public class PersonServiceBean extends DaoSupport { }

小结:

  1. 泛化关系实际上就是继承关系
  2. 如果A类继承了B类,我们就说A和B存在泛化关系

实现关系

实现关系实际上就是A类实现B接口,他是依赖关系的特例

public interface PersonService { public void delete(Integer id); } public class PersonServiceBean implements PersonService{ @Override public void delete(Integer id) { // TODO Auto-generated method stub System.out.println("delete.."); } }

关联关系

关联关系实际上就是类与类之间的联系,他是依赖关系的特例

  1. 关联具有导航性:即双向关系或单向关系
  2. 关系具有多重性:如“1”(表示有且仅有一个),“0…”(表示0个或者多个),“0,1”(表示0个或者一个),“n.….m”(表示n到m个都可以), “m.….*”(表示至少m个)。
欢迎大家来到IT世界,在知识的湖畔探索吧!# 单向一对一关系 public class IDCard{} public class Person{ private IDCard card; } # Person 与IDCard是单向1对1的关系 public class IDCard{ private Person person; } public class Person{ private IDCard card; } # Person与IDCard是双向1对1的关系

聚合关系

聚合关系(Aggregation〉表示的是整体和部分的关系,整体与部分可以分开。聚合关系是关联关系的特例,所以他具有关联的导航性与多重性。

如:一台电脑由键盘(keyboard)、显示器(monitor),鼠标等组成;组成电脑的各个配件是可以从电脑上分离出来的。

public class Moniter { } public class Mouse { } public class Computer { private Mouse mouse; //鼠标可以和computer分离 private Moniter moniter;//显示器可以和Computer分离 public void setMouse(Mouse mouse) { this.mouse = mouse; } public void setMoniter(Moniter moniter) { this.moniter = moniter; } } # 上述方式便是聚合的最好解释方式

组合关系

组合关系:也是整体与部分的关系,但是整体与部分不可以分开。

再看一个案例:在程序中我们定义实体:Person与 IDCard、Head,那么Head 和 Person 就是组合,IDCard 和Person就是聚合。

但是如果在程序中Person实体中定义了对IDCard进行级联删除,即删除 Person时连同IDCard一起删除,那么IDCard和 Person就是组合了。

欢迎大家来到IT世界,在知识的湖畔探索吧!public class Head { } public class IDCard { } public class Person { private IDCard card; //聚合关系 private Head head = new Head(); //组合关系 } public class Moniter { } public class Mouse { } public class Computer { private Mouse mouse = new Mouse(); //鼠标可以和computer不能分离 private Moniter moniter = new Moniter();//显示器可以和Computer不能分离 public void setMouse(Mouse mouse) { this.mouse = mouse; } public void setMoniter(Moniter moniter) { this.moniter = moniter; } }

总结:

聚合、组合算是最常见的方式了,经常会被提及,希望大家一定要记住!!!简单一点记就是聚合可以分割,组合不可以分割。


免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/88289.html

(0)
上一篇 2天前
下一篇 2天前

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信