Java代码表示URML依赖/泛化/实现/关联/聚合/组合关系

JavaUML大约 1793 字

依赖-Dependence

/**
 * dependence: 依赖关系
 * UserService在类中用到了UserDao, User
 */
public class UserService {

    private UserDao userDao;

    //可以是构造,也可以用Spring注入
    public UserService(UserDao userDao) {
        this.userDao = userDao;
    }

    public void saveUser(User user) {
        userDao.save(user);
    }

}

public class UserDao {

    public void save(User user) {
        System.out.println("保存用户");
    }

}

public class User {
}

泛化-Generalization

/**
 * Generalization: 泛化关系
 * 继承就是一种泛化
 * UserService继承了BaseService
 */
public class UserService extends BaseService {
}

public abstract class BaseService {
}

实现-Implementation

/**
 * implementation: 实现关系
 * UserServiceImpl实现了UserService
 */
public class UserServiceImpl implements UserService {
}

public interface UserService {
}

关联-Association

单向一对一关联

/**
 * association: 关联关系
 * 依赖关系的特例
 * 单向一对一关联
 * User关联IDCard
 */
public class User {
    private IDCard idCard;
}

public class IDCard {
}

双向一对一关联

/**
 * association: 关联关系
 * 依赖关系的特例
 * 双向一对一关联
 * User关联IDCard,IDCard中同样关联User
 */
public class User {
    private IDCard idCard;
}

public class IDCard {
    private User user;
}

聚合-Aggregation

/**
 * aggregation: 聚合关系
 * 聚合关系是关联关系的特例
 * 整体和部分的关系,整体与部分可以分开
 * set方法设置Mouse、Keyboard
 */
public class Computer {

    private Mouse mouse;
    private Keyboard keyboard;

    public void setMouse(Mouse mouse) {
        this.mouse = mouse;
    }

    public void setKeyboard(Keyboard keyboard) {
        this.keyboard = keyboard;
    }
}

public class Mouse {
}

public class Keyboard {
}

组合-Composition

/**
 * composition: 组合关系
 * 整体与部分的关系,但是整体与部分不可以分开
 * 直接new
 */
public class Computer {
    private Mouse mouse = new Mouse();
    private Keyboard keyboard = new Keyboard();
}

public class Mouse {
}

public class Keyboard {
}
阅读 591 · 发布于 2019-12-16

————        END        ————

扫描下方二维码关注公众号和小程序↓↓↓

昵称:
随便看看换一批