- 博客(11)
- 收藏
- 关注
原创 设计模式之工厂方法模式
定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类,克服了简单工厂违背开发-封闭的原则,又保持了封装对象创建工厂的优点工厂接口:/** * 工厂类接口 */interface Factory { Animal create(String s);}生产对象接口:@AllArgsConstructor@Dataclass ...
2020-04-20 22:39:51
108
原创 设计模式之模板方法模式
定义一个操作中算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。模板类:@Log4j2public abstract class AbstractTemplate { /** * 相同的操作,不需要子类实现 */ protected void sameOperation(){ ...
2020-04-20 22:39:38
93
原创 设计模式之外观模式
为子系统中一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得子系统更加容易使用,组合基础类,提供复杂功能,外部不需要知道内部具体逻辑,只了解外观即可。各子系统:@Log4j2class SubSystemOne { public void methodOne() { log.info("子系统方法1"); }}@Log4j2cl...
2020-04-20 22:39:23
91
原创 设计模式之建造者模式
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示,使用多个简单的对象一步一步构建成一个复杂的对象,建造代码与表示代码分离产品类:@ToStringclass Product { List<String> parts = new ArrayList<>(); public void addPart(String part...
2020-04-20 22:38:50
92
原创 设计模式之状态模式
当一个对象的内在状态改变时允许改变其行为,这和对象看起来像是改变了其类(将与特定状态相关的行为局部化,并将不同状态的行为局部化,并将不同状态的行为分割来),当行为依赖于状态时那么状态模式很适用具体状态类:@AllArgsConstructorabstract class AbstractState { protected String name; /** ...
2020-04-19 16:58:07
169
原创 Java基础——数据类型
Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间1、原码补码反码概念原码:就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。反码:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。补码:正数的补码与其原码相同;负数的补码是在其反码的末位加1。 (也有说法是负数的补码等于他的...
2020-04-19 16:33:42
75
原创 设计模式之策略模式
封装功能或者算法,在运行时根据需要使用不同的策略封装策略类:/** * 抽象算法接口 */interface Strategy { void algorithmInterface();}/** * 具体算法实现类 */@Log4j2class ConcreteStrategyA implements Strategy { @Override ...
2020-04-19 16:29:10
67
原创 设计模式之装饰模式
动态的给一个对象添加一些额外的职责,同时又不改变其原本的结构,作为原有类的包装,就增加功能来说,装饰模式比生成子类更为灵活。原本对象:/** * 原本功能 */interface Component { /** * 原本功能 */ void operation();}@Log4j2class ConcreteComponent imp...
2020-04-19 16:17:22
76
原创 设计模式之原型模式
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象,不需要知道任何创建的细节,主要用于创建重复的对象,同时也能保证性能( 浅复制和深复制)@Log4j2@Datapublic class PrototypePattern implements Cloneable { private String attribute1; private String att...
2020-04-19 16:03:27
87
原创 设计模式之代理模式
为其他对象提供一种代理以控制对这个对象的访问,避免直接访问对象带来的问题,比如需要事务控制,需要异步,在访问一个类时做一些控制,比如Spring的AOP就是依赖代理实现。直接看代码吧真实对象:interface Subject { /** * 对象请求 */ void request();}@Log4j2class RealSubje...
2020-04-19 15:46:24
73
原创 大话设计模式 阅读整理
编程是一门技术,更是一门艺术简单工厂模式 —— 封装对象创建方式,暴露给客户端的永远是接口而不是具体逻辑策略模式 —— 封装 功能 或者算法 在运行时根据需要使用不同的策略单一职责原则 —— 一个类最好就只有一个职责,提升 维护性,灵活性开放—封闭原则 —— 对扩展开发,对修改关闭依赖倒转原则 ——1、抽象不应该依赖细节,细节不应该依赖抽象(针对接口编程)2、高层...
2020-04-05 15:18:07
128
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人