计算机中的代码===>现实世界的规律
- 将实际业务中的需求 业务 ===>映射 投影 到我们的代码中
稳定是相对的;将不稳定代码封装隔离起来
- 统一管理不稳定的代码;保证其他代码的稳定性(IOC)
理论知识
- 单纯的interface可以统一方法,但是它不能统一对象实例化
- 面向对象主要做两件事:实例化对象/调用方法(完成业务逻辑)
- 只有一段代码中new的出现,才能保持代码的相对稳定,才能逐步实现OCP
- 上面的这句话知识表象,实质是一段代码如果要保持稳定,就不应该负责对象的实例化
- 对象的实例化是不可能消除的,只是以某种方式封装隔离,把对象实例化的过程,转移到其他代码片段里
- 代码中总是会存在不稳定,隔离这些不稳定,包装其他代码的稳定
- 变化(客户需求–现实世界的规律)造成不稳定
- 配置文件属于系统外部的(xml/注解),而不属于代码本身
interface --接口统一方法
- 针对一个实例的对个方法进行统一管理,实现类完成具体方法的编写
public interface Skill { void q(); void w(); void e(); void r(); }
factory–使用工厂模式统一实例化
- 具体业务类无需再new对象,保持业务对象的稳定
- public static void main(String[] args) {
String name = getPlayerInput();
// 将下面操作让工厂去完成
// Skill skill;
// switch (name) {
// case “Diana”:
// skill = new Diana();
// break;
// case “Camille”:
// skill = new Camille();
// break;
// case “Irelia”:
// skill = new Irelia();
// break;
// default:
// throw new IllegalStateException("Unexpected value: " + name);
// }
/**
* 形成一个相对稳定的方法–不用自己实例化,统一方法
*/
// 使用工厂模式统一实例化
Skill skill = HeroFactory.getHero(name);
// 使用接口统一方法
skill.r();
}
OCP
IOC/DI–抽象工厂模式(ApplicationContext)
- DIP 依赖倒置 不在实例化对象;我们依赖抽象(上层);抽象不依赖细节
- DI 依赖注入(容器生成对象…注入使用) 属性注入/构造注入/接口注入…
点击查看更多内容
1人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦