«

面向对象设计原则 Dependency Inversion Principle 依赖倒置原则 简单版

时间:2024-3-26 15:53     作者:xiang     分类:


Dependency Inversion Principle 依赖倒置原则 dip

dip有两个原则
1.高层模块不应该依赖于底层模块,二者都应该依赖抽象
2.抽象不应该依赖细节,细节应该依赖于抽象

举一个例子

后端项目,写一个数据列表的接口。

返回数据的格式如下:

{
  "code": 0,
  "message": "成功",
  "data": {
    "conllection": [
      {
        "id": 76,
        "pid": 0,
        "type": "menu",
        "title": "",
        "name": "",
        "path": "",
        "icon": "local-logo",
        "menu_type": null,
        "url": "",
        "component": "",
        "keepalive": 0,
        "extend": "none",
        "remark": "",
        "weigh": 0,
        "status": "1",
        "update_time": null,
        "create_time": null
      }
    ],
    "current_page": 1,
    "per_page": 1,
    "total": 1
  }
}

把返回的数据字段和类型都定义好的话,这个接口就可以跟前端对接。所以先把接口字段定义好。是一个有效率的做法。

现在项目分三层,控制层->服务层(获取数据)->数据仓库层->模型层等等。从高到低。如果遵循依赖倒置原则,我现在只要定义好数据响应类就是以上的json生成的class.

和写好一个接口来定义控制层和服务层使用什么参数和返回值来作数据交换就可以。

定义admin_role类

public class AdminRole {
    private int id;
    private int pid;
    private String type;
    private String title;
    private String name;
    private String path;
    private String icon;
    private String menuType;
    private String url;
    private String component;
    private int keepalive;
    private String extend;
    private String remark;
    private int weigh;
    private String status;
    private String update_time;
    private String create_time;

    // 省略getter和setter方法
}