11 2020 档案

摘要:工厂模式:工厂模式分为简单工厂、工厂方法和抽象工厂模式。 简单工厂不属于23种设计模式。 优点:可以降低程序的耦合性,为后期的维护修改提供了很大的便利。 工厂方法模式:定义一个用于创建对象的接口,让子类决定将哪一个类实例化。Factory Method使一个类的实例化延迟到其子类。 抽象工厂模式:提 阅读全文
posted @ 2020-11-29 19:30 架构师_迦叶 阅读(113) 评论(0) 推荐(0)
摘要:原型模式:使用克隆技术复制创建复杂的或者构造耗时的实例,被复制的对象就是所谓的“原型”。 应用场景 a、类初始化需要消耗非常多的资源,包括数据库、硬件资源等,使用拷贝可避免这些消耗 b、new产生的对象需要非常繁琐的数据准备或权限 c、Spring框架中的多例就是使用原型 如何实现 (1)实现Clo 阅读全文
posted @ 2020-11-29 19:28 架构师_迦叶 阅读(127) 评论(0) 推荐(0)
摘要:建造者模式:将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 特点: a、需要生成的对象具有复杂的内部结构。 b、需要生成的对象内部属性本身相互依赖。 优点: 1.使用建造者模式可以使客户端不必知道产品内部组成的细节。 2.具体的建造者类之间是相互独立的,对系统的扩展非常 阅读全文
posted @ 2020-11-29 19:26 架构师_迦叶 阅读(91) 评论(0) 推荐(0)
摘要:适配器模式:将一个类的接口转换成客户希望的另外一个接口。 优点:使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 应用场景 新老版本接口的兼容【不同的数据库版本、不同的系统版本兼容】 OutputStreamWriter:是Writer的子类,将输出的字符流变为字节流,即:将一个字符流的输 阅读全文
posted @ 2020-11-29 19:25 架构师_迦叶 阅读(76) 评论(0) 推荐(0)
摘要:外观模式:通过提供一个高层接口,为子系统中的一组接口提供一个一致的界面。 优点:隔离了外部系统与子系统间复杂的交互过程,使得复杂系统的子系统更易使用。 应用场景 支付回调等复杂逻辑 外观模式核心代码图示 相关文章链接: <<<23中常用设计模式总览 <<<代理模式(Proxy Pattern) << 阅读全文
posted @ 2020-11-29 19:24 架构师_迦叶 阅读(96) 评论(0) 推荐(0)
摘要:模板方法模式:定义一个操作中的算法的骨架,差异性的实现交由子类完成。 应用场景 支付回调、银行业务 数据库访问的封装 Junit单元测试 Hibernate中模板程序 spring中JDBCTemplate,HibernateTemplate等 httpservlet中的doget、dopost等 阅读全文
posted @ 2020-11-29 19:23 架构师_迦叶 阅读(168) 评论(0) 推荐(0)
摘要:策略模式:定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。 策略模式在Spring的使用场景 把多重if判断分割成多个不同的对象管理 ApplicationContext FileSystemXmlApplicationContext 阅读全文
posted @ 2020-11-29 19:22 架构师_迦叶 阅读(428) 评论(0) 推荐(0)
摘要:责任链模式:避免请求发送者与接收者耦合在一起,将多个对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。 应用场景 ERP系统 审批流程 流程审批 总经理、人事经理、项目经理 网关控制 Api接口限流、黑名单、用户会话、参数过滤、session过滤等 风控系统 失信名单 信用卡是否逾期 阅读全文
posted @ 2020-11-29 19:20 架构师_迦叶 阅读(310) 评论(0) 推荐(0)
摘要:单例模式:一个类仅有一个实例,并提供一个访问它的全局访问点。 优点:减少代码冗余、提高代码复用性、安全性、隐藏真实角色、非入侵、节约内存、重复利用 缺点:线程安全问题,数量很多的话容易导致内存泄露 应用场景 spring IOC容器 线程池(数据库、多线程) 枚举、常量类 配置文件常量 日志 Htt 阅读全文
posted @ 2020-11-29 19:19 架构师_迦叶 阅读(120) 评论(0) 推荐(0)
摘要:观察者模式:定义了对象间的一种一对多依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。 应用场景 Spring的Event监听 订单成功后的邮件短信及活动发放 分布式配置中心刷新配置 Zookeeper事件通知节点 消息订阅通知 安卓开发事件注册 JDK自带的观察者 阅读全文
posted @ 2020-11-29 19:17 架构师_迦叶 阅读(179) 评论(0) 推荐(0)
摘要:代理模式:动态地给一个对象添加一些额外的职责,它比生成子类方式更为灵活。 优点:在某些时候装饰模式比继承(inheritance)要更加灵活 装饰模式的组成 (1)抽象组件:定义一个抽象接口,来规范准备附加功能的类 (2)具体组件:将要被附加功能的类,实现抽象构件角色接口 (3)抽象装饰者:持有对具 阅读全文
posted @ 2020-11-12 08:45 架构师_迦叶 阅读(196) 评论(0) 推荐(0)
摘要:@Async如何使用 异步的方法上加上@Async异步注解 启动类中需要加上@EnableAsync才有效 使用时类似于下列函数: new Thread(()-> System.out.println("hello world !")) @Async线程池 默认线程池 无论重复多少次,都默认8个左右 阅读全文
posted @ 2020-11-12 08:44 架构师_迦叶 阅读(1939) 评论(0) 推荐(0)
摘要:Java字节码增强指的是在Java字节码生成之后,对其进行修改,增强其功能,可减少冗余代码,提高性能等。 应用场景 AOP技术 Lombok去除重复代码插件 利用字节码操作类库动态修改class文件等 操作步骤 总原则:在内存中获取到原来的字节码,然后通过一些工具(如 ASM,Javaasist)来 阅读全文
posted @ 2020-11-11 11:41 架构师_迦叶 阅读(142) 评论(0) 推荐(0)
摘要:代理模式:使用代理对象完成用户请求,屏蔽用户对真实对象的访问。 优点:减少代码冗余、提高代码复用性、安全性、隐藏真实角色、非入侵 应用场景 Spring AOP 过滤器 自定义注解 全局捕获异常 事务原理 日志收集打印 权限控制 RPC远程调用 安全代理可以隐蔽真实角色 Mybatis的Mapper 阅读全文
posted @ 2020-11-11 11:39 架构师_迦叶 阅读(137) 评论(0) 推荐(0)
摘要:1.反射机制获取类的三种方法 //第一种方式: Classc1 = Class.forName("Employee"); //第二种方式: //java中每个类型都有class 属性. Classc2 = Employee.class; //第三种方式: //java语言中任何一个java对象都有g 阅读全文
posted @ 2020-11-09 22:40 架构师_迦叶 阅读(118) 评论(0) 推荐(0)
摘要:使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。 #1.设计模式类型 #2.设计模式分类 #3.一句话概况 #4.六大设计原则 1.单一职责原则:一个类别太大,只负责单一的职责。做到高内聚低耦合 2.迪米特法则:尽量不要和陌生人说话。非陌生人主要指: 2.1 对象本身t 阅读全文
posted @ 2020-11-09 22:39 架构师_迦叶 阅读(98) 评论(0) 推荐(0)