Java

单例模式是保证一个类仅有一个实例,并提供一个全局访问点。属于创建型,也属于GOF23种设计模式。 适用范围 想确保任何情况下都绝对只有一个实例。 优缺点 优点:在内存里只有一个实例,减少了内存开销;可以避免对资源...

发布

建造者模式是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。用户只需指定需要建造的类型就可以得到它们,建造过程及细节不需要知道。属于创建型,也属于GOF23种设计模式。 适用范围 1.如果一个...

发布

抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口,无需指定它们具体的类。属于创建型,也属于GOF23种设计模式。 适用范围 1.客户端(应用层)不依赖于产品类实例如何被创建、实现等细节。2.强调一系列相关的产品对象...

发布

工厂方法模式是定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行。属于创建型,也属于GOF23种设计模式。 适用范围 1.创建对象需要大量重复的代码。2.客户端(应用层)...

发布

简单工厂是由一个工厂对象来决定创建出哪一种产品类的实例。属于创建型,但不属于GOF23种设计模式,更像是一种编码的风格和习惯。 学习简单工厂后,对于学习工厂方法、抽象工厂更有帮助。 适用范围 1.工厂类负责创建的对象...

发布

由于 Vue CLI 3 不再使用传统的 webpack 配置文件,导致 WebStorm 无法识别别名,需要手动创建一个 webpack 配置文件。 在项目根目录,创建一个 alias.config.js 文件,写入以下代码: const resolve = dir => require(...

发布

对于习惯使用 IntelliJ IDEA 的玩家,使用 WebStorm 来编写前端代码比使用 Visual Studio Code 更得劲,于是开始折腾。。。 我使用的 WebStorm 版本是 2019.1 ,不同版本界面会有少许区别。 安装插件 首先在 WebStorm 安装 ...

发布

什么是编解码器 每个网络应用程序都必须定义如何解析在两个节点之间来回传输的原始字节,以及如何将其和目标应用程序的数据格式做相互转换。这种换换逻辑由编解码器处理,编解码器由编码器和解码器组成,它们每种都可以将字节流从...

发布

EmbeddedChannel 概述 Netty 提供了它所谓的 Embedded 传输,用于测试 ChannelHandler 。这个传输是一种特殊的 Channel 实现 EmbeddedChannel 的功能,这个实现提供了通过 ChannelPipeline 传播事件的简便方法。 将入站数据或...

发布

Bootstrap 类 引导类的层次结构中包括了一个抽象的父类和两个具体的引导子类: ServerBootstrap 致力于使用一个父 Channel 来接受来自客户端的连接,并创建子 Channel 以用于它们之间的通信。Bootstrap 一般只需要一个单独...

发布

线程模型概述 线程模型确定了代码的执行方式 基本的线程池化模式可以描述为: 从池的空闲线程列表中选择一个 Thread ,并且指派它去运行一个已提交的任务(一个 Runnable 的实现)。当任务完成时,将该 Thread 返回给该列表...

发布

ChannelHandler 家族 Channel 的生命周期 Channel 接口定义了一组和 ChannelInboundHandler API密切相关的简单但功能强大的状态模型。Channel 的 4 个状态: ChannelUnregistered:Channel已经被创建,但还未注册到 EventLo...

发布

网络数据的基本单位是字节,Java NIO 提供了 ByteBuffer 作为它的字节容器,但是这个类使用很频繁且过于复杂。所以 Netty 提供了 ByteBuf 作为字节容器,用于替代 ByteBuffer 的工作。 Netty 的数据处理 API 通过两个组件暴露 :B...

发布

传输API 传输 API 的核心是 Channel 接口,它被用于所有的 I/O 操作。Channel 实现是线程安全的,即使你在多个线程中使用它向远程节点写数据。 Channel 类的层次结构如下: 每个 Channel 都会被分配给一个 ChannelPipeline...

发布

Channel、EventLoop 和 ChannelFuture Channel 、 EventLoop 、 ChannelFuture 这些类合在一起,可以被认为是 Netty 网络抽象的代表。 Channel:SocketEventLoop:控制流、多线程处理、并发ChannelFuture:异步通知 Channel...

发布