X  
登录

还没有账号?立即注册

忘记密码?
登陆
X  
注册

已经有账号?马上登陆

获取验证码
重新获取(60s)
立即注册
统计
  • 建站日期:2021-03-10
  • 文章总数:518 篇
  • 评论总数:155 条
  • 分类总数:32 个
  • 最后更新:4月20日
文章 代码笔记

设计模式五种关系依赖聚合组合实现继承泛化

梦幻书涯
首页 代码笔记 正文


设计模式五种关系依赖聚合组合实现继承泛化
-梦幻书涯 - 莫問前路遙遠- 與君風雪
-第1
张图片

双向关联

public class Book{
    private Title title;
}

public class Title{
    private Book book;
}


设计模式五种关系依赖聚合组合实现继承泛化
-梦幻书涯 - 莫問前路遙遠- 與君風雪
-第2
张图片

单向关联

public class Book{
    private Title title;
}

public class Title{

}


设计模式五种关系依赖聚合组合实现继承泛化
-梦幻书涯 - 莫問前路遙遠- 與君風雪
-第3
张图片

自关联

public class Book{
    private Book book;

}


设计模式五种关系依赖聚合组合实现继承泛化
-梦幻书涯 - 莫問前路遙遠- 與君風雪
-第4
张图片

多重性关联

#一个form页面可以与>=0个button按钮对象有关联  但是一个Button按钮对象只与一个From页面对象有关联

public class Form{
    private Button[] buttons;
}

public class Button{

}


设计模式五种关系依赖聚合组合实现继承泛化
-梦幻书涯 - 莫問前路遙遠- 與君風雪
-第5
张图片

聚合关系(空心菱形)

# 描述的是整体和部分的关系 但是部分对象(成员对象)可以脱离整体对象而存在 
# 就是整体对象即使被销毁  部分(成员)对象还是能存活的  例如汽车和发动机,即使汽车对象被销毁,发动机对象还是可以存在

public class Car{
    private Engine engine;
    public Car(Engine engine){
      this.engine=engine;
    }

    public void setEngine(Engine engine){
      this.engine=engine;
    }
}

public class Engine{

}


设计模式五种关系依赖聚合组合实现继承泛化
-梦幻书涯 - 莫問前路遙遠- 與君風雪
-第6
张图片

组合关系(实心菱形)

# 描述的是整体和部分的关系 但是部分对象(成员对象)不可以脱离整体对象而存在 
# 就是整体对象即使被销毁  部分(成员)对象也被销毁的  例如头部和嘴,如果头都没了,嘴也自然没有
# 也就是部分(成员)对象的周期跟整体对象的周期是一致的 同时存在同时销毁

public class Head{
    private Mouth mouth;
    public Head(){
      mouth=new Mouth();
    }
}

public class Mouth{

}


设计模式五种关系依赖聚合组合实现继承泛化
-梦幻书涯 - 莫問前路遙遠- 與君風雪
-第7
张图片

依赖关系(虚线 关联实线 注意箭头)

# 箭头的含义:
  # 箭头 A类  ---->   B类  在A类中有B类的对象   箭头指向谁 就说非箭头那方引用箭头那方的类对象
  # 实线带箭头 ---->  关联
  # 虚线带箭头 - - - -> 依赖

  # 大多数情况下 B类的对象作为A类的办法的参数存在

public class Head{
    private Mouth mouth;
    public Head(){
      mouth=new Mouth();
    }
}

public class Mouth{

}

关联和依赖区别

A类--->B类
关联:B类的对象作为A类的成员对象存在
依赖:B类的对象作为A类的办法的参数存在  就A类某个办法参数就是B类的对象


设计模式五种关系依赖聚合组合实现继承泛化
-梦幻书涯 - 莫問前路遙遠- 與君風雪
-第8
张图片

泛化关系(继承关系 实线) 和实线关系就区别于实线虚线

public  class Person {
    protected String name;
    protected int age;
    protected void move(){

    }
    protected void say(){

    }
}

  class Student extends Person {
    private String studengNo;
    public void study(){

    }
}

class Teacher extends Person {
    private String teacherNo;
    public void teach(){

    }
}


设计模式五种关系依赖聚合组合实现继承泛化
-梦幻书涯 - 莫問前路遙遠- 與君風雪
-第9
张图片

实现关系(继承关系 实线) 和实线关系就区别于实线虚线

public  interface Vehicle {
    public void move();
}

  class Ship implements Vehicle {
      @Override
      public void move() {
          System.out.println("实现该办法1");
      }
  }

class Car implements Vehicle {
    @Override
    public void move() {
        System.out.println("实现该办法2");
    }
}

版权说明
文章采用: 《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权。
版权声明:未标注转载均为本站原创,转载时请以链接形式注明文章出处。如有侵权、不妥之处,请联系站长删除。敬请谅解!

-- 展开阅读全文 --
这篇文章最后更新于2022-6-30,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!
面向对象——五大基本原则
« 上一篇
mysql 分页查询,你写对了吗?
下一篇 »

发表评论

HI ! 请登录
注册会员,享受下载全站资源特权。
登陆 注册
永远的少年,永远的梦

热门文章