摘要: 需要记住的最重要的一点是,工厂方法设计模式与简单工厂设计模式并不完全相同。大多数人认为两者是相同的,因此他们可以互换地使用术语工厂和工厂方法,这是不对的。 一、什么是工厂方法设计模式? 根据Gang of Four的定义 “定义一个用于创建对象的接口,但是让子类决定实例化哪个类。工厂方法允许类将其用 阅读全文
posted @ 2023-01-25 16:04 初晨~ 阅读(78) 评论(0) 推荐(0) 编辑
摘要: 一、什么是工厂设计模式? 根据Gang of Four的定义,工厂是用于创建其他对象的对象,就是说工厂是一个带有方法的类,该方法将根据输入的参数创建并返回不同类型的对象。简单地说,如果我们有一个父类和n个子类,并且基于提供的数据,必须创建并返回其中一个子类的对象,那么就需要使用工厂设计模式。 在工厂 阅读全文
posted @ 2023-01-24 21:06 初晨~ 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 一、什么是初始加载? 实现单例模式有两种方式,一种是懒加载,也就是延迟加载,当首次调用时创建单例对象,另一种是初始加载,在应用程序启动时就初始化单例对象,并将其保存在内存中以备将来使用,而不是需要时才创建。初始加载不需要考虑多线程环境导致的线程不安全问题,因为CLR将负责对象初始化和线程安全。这意味 阅读全文
posted @ 2023-01-20 13:37 初晨~ 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 一、什么是单例设计模式中的线程安全? 首先,创建一个单例类: public sealed class GuidService { private static int counter = 0; private static GuidService? _guidService = null; publ 阅读全文
posted @ 2023-01-19 16:00 初晨~ 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 使用单例设计模式,需要确保在任何给定的时间点对于整个应用程序只有一个特定类的实例可用。使用私有构造函数,可以避免类在外部被实例化,但是却无法避免由于内部类(嵌套类)的继承导致多个实例被创建,如下: public class GuidService { private static int count 阅读全文
posted @ 2023-01-18 22:14 初晨~ 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 一、什么是单例模式? 单例设计模式属于创建型模式范畴,所以主要用于处理对象创建和操作,当我们需要确保只创建一个特定类的实例,然后为整个应用程序提供对该实例的简单全局访问时,我们需要在C#中使用Singleton设计模式。比如: public class GuidService{ private re 阅读全文
posted @ 2023-01-17 08:36 初晨~ 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 一、前言 最近看了一些有关设计模式的相关书籍和博客,学习了几种常用的设计模式,归纳总结一下学习笔记。 二、什么是创建型设计模式? 在软件工程中,创建型设计模式是处理对象创建机制的设计模式,即试图以适合给定情况的方式创建对象。简而言之,我们可以说创建型设计模式处理对象创建和初始化。这种设计模式使我们能 阅读全文
posted @ 2023-01-16 20:29 初晨~ 阅读(86) 评论(0) 推荐(0) 编辑
摘要: HashSet概述 Hashset 实现 set 接口,底层是基于 HashMap 实现并且使用 HashMap 来保存所有元素,但与 HashMap 不同的是 HashMap 存储键值对,HashSet仅存储对象,也就是把将要存的对象放到key部分,而value部分直接给一个空Object。 Ha 阅读全文
posted @ 2021-11-11 11:14 初晨~ 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 一、概念 底层是一个双向链表,除了存储自身值之外,还额外存储了其前一个和后一个元素的地址,所以也就可以很方便地根据当前元素获取到其前后的元素。 实现接口: 可以看到、LinkedList实现了List接口,又实现了Deque接口,所以既可以添加将元素添加到尾部,也可以将元素添加到指定索引位置,还可以 阅读全文
posted @ 2021-11-09 21:53 初晨~ 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 1.ArrayList简介 底层是用数组实现的,并且它是动态数组,也就是它的容量是可以自动增长的。 实现 接口:所以 支持快速随机访问,本质上是通过下标序号随机访问。 实现 接口:使 支持序列化,通过序列化传输。 实现 接口:使 能够克隆。 1.1.底层关键 底层本质上是一个数组,用该数组来保存数据 阅读全文
posted @ 2021-11-09 11:41 初晨~ 阅读(48) 评论(0) 推荐(0) 编辑
摘要: 1.安装JDK 安装Centos7.6时,在软件选择里边的开发工具选项打勾后,默认会安装openjdk,我们一般都会用oracle的jdk,所以要卸载。 1.1.卸载JDK 1.查询系统是否以安装jdk 2.然后会列出有关jdk的内容: 3.需要把这四个都删除掉 可以再次执行rpm qa | gre 阅读全文
posted @ 2021-11-08 21:18 初晨~ 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 文档操作 新增文档 语法: POST /索引库名/_doc/文档id { "字段1": "值1", "字段2": "值2", "字段3": { "子属性1": "值3", "子属性2": "值4" }, // ... } 示例: POST /student/_doc/1 { "name": "小明" 阅读全文
posted @ 2021-10-11 22:18 初晨~ 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 索引库操作 索引库就类似数据库表,mapping映射就类似表的结构。 我们要向es中存储数据,必须先创建“库”和“表”。 1.1.mapping映射属性 mapping是对索引库中文档的约束,常见的mapping属性包括: type:字段数据类型,常见的简单类型有: 字符串:text(可分词的文本) 阅读全文
posted @ 2021-10-11 18:06 初晨~ 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 以下内容是尚硅谷学院微服务教程笔记 1.部署单点es 1.1.创建网络 因为我们还需要部署kibana容器,因此需要让es和kibana容器互联。这里先创建一个网络: docker network create es-net 1.2.加载镜像 这里我们采用elasticsearch的7.12.1版本 阅读全文
posted @ 2021-10-11 16:49 初晨~ 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 1.Docker-Compose Docker Compose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器! 1.1.初识DockerCompose Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。格式如下: version: "3.8 阅读全文
posted @ 2021-10-10 22:09 初晨~ 阅读(240) 评论(0) 推荐(0) 编辑