- 博客(7)
- 收藏
- 关注
原创 设计模式之组合模式
组合模式定义了包含基本对象、组合对象的类层次结构。基本对象可以被组合成更复杂的组合对象。而这个组合对象又可以被组合,这样不断的递归下去,客户代码中,任何用到基本对象的地方都可以使用组合对象了。用户无需关心到底是处理一个叶节点还是处理一个组合对象,也就用不着为定义组合而写一些选择判断语句了。
2023-12-15 11:42:27
453
原创 设计模式之桥接模式
在面向对象设计中,我们还有一个很重要的设计原则,那就是合成/聚合复用原则。即优先使用对象合成/聚合复用原则,而不是类继承。
2023-12-13 14:15:44
830
1
原创 设计模式之适配器模式
适配器模式可以将客户端本不适用的接口,经过适配,达到客户端可以使用的模式。主要目的是兼容,让原本因接口不匹配,不能一起工作的两个类可以协同工作,其别名是包装器。(Wrapper)适配器模式属于结构型模式。主要分为三类:类适配器,对象适配器,接口适配器。基本思路和类适配器模式相同,只是将Adapter类做修改,不再继承Voltage220V类,而是持有Voltage220V类的实例。以解决兼容性的问题。根据“合成复用原则”,在系统中尽量使用关联关系来替代继承关系。
2023-12-12 16:02:54
393
原创 设计模式之建造者模式
优点是好理解,使用简单。缺点是程序设计的过于简单,缺少缓存层对象。程序不利于拓展和维护。这种设计方案把产品(房子)和构建过程都放到了一起。增加了耦合度。解决办法:将产品和产品建造过程解耦,===> 使用建造者模式。建造者模式又叫生成器模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来,使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们。用户不需要知道内部的具体构建细节。
2023-12-11 14:34:18
904
1
原创 设计模式之原型模式
但是现在的代码属于是浅拷贝,如果被克隆的类中存在引用类型字段,这个时候,我们新克隆出来的对象的引用对象只会指向被克隆对象的地址,而不是创建新的引用类型对象。根据结果可以看到,新创建的sheep1、sheep2、sheep3、sheep4的dog的hashcode地址一致,并没有创建新的Dog对象。可以看到在没有使用原型模式的时候,我们需要手动的去初始化对象,并且如果被克隆的对象增加了新的字段,我们的代码也会受到影响。此时可以看到我们在克隆对象的同时也克隆了他的引用类型字段。我们的被克隆类新增了Dog类。
2023-12-07 14:57:54
314
1
原创 大厂面试题个人笔记
大厂面试题笔记一、volatile关键字jvm提供的轻量级的同步机制三特性1.可见性2.不可原子性3.禁止指令重排1.可见性在a线程修改了共享变量x之后,其他线程会收到通知. 得到共享变量x最新的值2.不可原子性在多线程的环境下 线程是交替执行的。可能会导致结果不一致。(值覆盖)3.禁止指令重排指令重排在单线程下没有问题但是在多线程下 在没有数据依赖性的时候 指令重排会导致系统出错问:如何不用sychonized解决volatile的原子性问题?答:使用AtomicInte
2021-06-29 08:20:45
135
原创 Error:java: Cannot find JDK '1.8.0_201' for module 'employment-util'
Error:java: Cannot find JDK ‘1.8.0_201’ for module ‘employment-util’找到iml文件将对应配置删除即可
2019-03-11 10:58:26
15275
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人