ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

JAVA GoF设计模式-6大设计原则

2022-06-28 19:33:44  阅读:155  来源: 互联网

标签:核心思想 JAVA GoF 导出 public 迁移 设计模式 数据 class


6大设计原则

1、单一职责原则

核心思想:一个类只负责一件事
优点:低复杂度、可维护、低变更风险
// 系统数据迁移服务类,只保留和数据迁移相关的类
public class DataMigration{
// 方法1:查询待迁移的数据 
public T getData();
// 方法2:迁移总流程
public T migrationTask();
// 方法3:查询用户信息 >> 和迁移无关的
public T getUser(); 
}

 

2、开闭原则原则

核心思想:对修改关闭,对拓展开放
// 用户类
public class User {
// 属性只读
private String name;
 
// 提供公共接口
public String getName();
 
}

 

3、接口隔离原则

核心思想:模块间通过抽象接口隔离分开,而不是通过具体的类强耦合起来;通用性的接口, 不要有个性化的,设计接口精简单一
// 公共服务
public class CommonService {
// 导出
public T export();
// 查询
public T queryT();
// 货币市场交易数据 个性话的方法
public T getMMDeal();
}

 

4、里氏替换原则(LSP)

核心思想:父类可以被子类无缝替换,且原有功能不受任何影响,不要破坏继承关系
优点:少bug、增强可读性
// 服务基础类
public class BaseService {
// 方法1:获取登录用户信息
public User getCurrentUser(String uuid);
}
 
// 系统数据迁移服务类,只保留和数据迁移相关的类
public class DataMigration extends BaseService {
// 方法1:查询当前登录用户的待迁移的数据
// 直接继承父类的,不要改动父类的具体方法
User user = getCurrentUser(uuid); 
public T getData(User user);
}

 

5、迪米特原则

核心思想:最小知识原则,一个对象应当对其他对象有尽可能少的了解
// 导出服务
public class CommonService {
// 方法1 导出债券交易数据 直接导出数据无需关注具体债券信息
public T export(Bond bond);
}

 

6、依赖倒置原则(DIP)

核心思想:上层模块不应该依赖底层模块,它们都应该该依赖于抽象,面向接口编程
// 债券交易数据
public class Bond {
// 债券编号
// 债券名称
// 债券发行机构
}
// 货币市场交易数据
public class MoneyMarket {
// 头寸编号
// 交易行为
// 交易动作
}
// 导出服务
public class CommonService {
// 方法1 导出债券交易数据
public T export(Bond bond);
// 方法2 导出货币市场交易数据
public T export(MoneyMarket mm);
// 这样每次变动都要修改公共类,可能会动到原有的代码
public T export(Deal deal);
}

 

   

标签:核心思想,JAVA,GoF,导出,public,迁移,设计模式,数据,class
来源: https://www.cnblogs.com/chch213/p/16420797.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有