1. 多态概念回顾 Java中的多态,从字面理解即表示为多种形态。说白了就是相同的方法或者相同的调用方式,最终实际上调用的是不同形态的东西。 多态实现方式包括两种: 方法的多态:方法的重载和方法的覆盖。 对象的多态:对象的向上转型和向下转型。 这两种方式的多态结合在一起使用,使用多态让java程序拥有了强大的百变能力。
面向对象思想支撑的架构设计体系中,逐渐的衍生出7大设计原则。 1. 开闭原则 1.1 什么是开闭原则? 对扩展开放,对修改关闭。 在程序需要扩展时,不能修改原有的逻辑代码,实现一个热插拔的效果。 目的就是使程序的扩展性好,易于维护和升级。
1. 监听器 1.1 什么是监听器? 监听器是软件服务设计时的一种机制,服务在这个运行生命周期中,通过自身绑定的监听器对象来实时的监听运行过程当中发生的某些动作。 通俗点说,监听器就是一个实现特定接口的普通java程序,这个程序专门用来监听另外一个java对象的方法调用或者属性改变,当被监听的对象发生上述动作后,监听器某个方法将立即被执行。
1. 回调机制 1.1 理解回调机制 理解回调的思路如下: 方法自己调用自己:递归。 对象自己引用自己:链表。 A对象调用B对象的testB方法,B反过来再调用A的testA方法:回调。 A类中注入了B对象,通过B对象去实现某些功能:委托(依赖/代理/注入)。
1. 方法转发 1.1 回顾委托机制 委托机制核心是多态,通过引用传递进行向上转型或者直接传递来委托其他对象代为处理逻辑。
1. 委托机制 1.1 什么是委托机制? A类持有B对象,外部程序调用A的某个方法,A再委托B去处理。 这种基于水平扩展A对象功能的方式,就称为java中的委托机制。 一般来讲,如何让A对象持有B对象的引用,存在两种常见方式: 通过外部注入的方式,即外部向A对象注入B对象。 通过内建的方式,即A对象自己完成B对象的实例化和初始化过程。
1. 宏观的异步 宏观的异步一般是指系统调用之间的异步。 宏观的异步不像java编程模型中,必须启动一个新线程去执行。凡是调用方能够快速执行完毕的方式都属于宏观的异步通信方式。 比如,MQ消息队列中间件,生产者和消费者都与MQ远程通信,此时MQ的作用就实现了宏观的异步。通过加入MQ,生产者和消费者都能够很快速的和MQ完成通信,而避免了重量级的操作。 总之,调用关系中能够避免重量级操作的方式都属于宏观的异步调用。
1. Java中常见的机制 1.1 委托机制 委托机制更符合开闭原则和聚合原则,基于水平扩展来增强一个对象的功能,而不是频繁改动原有的代码设计。 委托机制在各种设计模式中特别常见,比如代理模式、装饰者模式、异步调用、回调等等,都是将某一个功能的处理委托给被委托类代为处理,从而实现水平扩展,实现高内聚低耦合的设计原则。 委托实际上是java代码执行流程的灵魂,好多模式都应用了委托机制。通过委托机制可以方便的实现请求流程的转发,即所谓的方法转发。 注意:造成委托机制可以畅通无阻的原因,应该感谢Java中的接口和多态的语法特性,没有多态很多功能将寸步难行。
1. 创建对象的方式 Java中使用一个对象之前,需要先实例化这个对象。 实例化对象的方式有如下几种: 通过new 构造方法()的方式,调用指定构造器去创建一个对象。 通过反射目标类的指定构造器或者默认构造器去创建一个对象。 通过Object的clone()方法去创建一个目标对象的副本对象。 通过反序列化的方式,将一个序列化后的字符串文本反序列化为一个对象。
1. Socket原理 网络编程主要依赖于Jdk中的Socket类和ServerSocket类。Socket类充当客户端,ServerSocket类充当服务器端。 Socket将指定内容通过输出流OutputStream输出到服务器端,服务器端的Socket对象会通过输出流InputStream接收Socket发送的数据,并对该数据进行处理,处理完毕后可能会通过输出流输出到Socket客户端的输入流中进行响应。 Socket编程中注意客户端启动的Socket不要定义为成员变量,一旦定义为成员变量,将会面临单利模式的多线程安全风险,因为成员变量有可能是共享可变成员,极有可能被多个线程对象共享,如此一来,在Socket客户端和Socket服务端进行网络通信遇到较大的传输报文时,有可能造成IO阻塞,导致成员变量的Socket对象被回收,此时服务端误以为客户端的Socket已经失效就主动关闭Socket链接,这样导致客户端总是报错Connection reset。
个人独立开发项目,基于springboot 3.x starter机制提供插拔式的插件功能
基于芋道最新源码二次开发