- 博客(49)
- 收藏
- 关注
原创 【设计模式--结构型--适配器模式】
将一个类的接口转换成客户希望的另一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。适配器模式分为类适配器模式和对象适配器模式,前者类之间的耦合度比后者高,而且要求程序员了解现有组件库中的相关组件的内部结构,所有应用较少。
2023-12-20 21:09:04
720
原创 【设计模式--结构型--代理模式】
由于某些原因需要给某对象提供一个代理以控制该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。java中的代理机制分为静态代理和动态代理静态代理:代理类在在编译期就生成动态代理:代理类在java运行时动态生成。JDK代理CGLib代理。
2023-12-20 20:54:41
1166
原创 【设计模式--行为型--备忘录模式】
又叫快照模式,在不破坏封装性的前提下,捕获一个对象的对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先保存的状态。
2023-12-19 20:23:59
1205
原创 【设计模式--行为型--中介者模式】
又叫调停模式,定义一个中介角色来封装一系列对象之间的交互,使原有对象之间的耦合松散,且可以独立的改变它们之间的交互。
2023-12-15 21:46:26
339
原创 【设计模式--行为型--观察者模式】
又被成为发布订阅模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有的观察者对象,使他们能够自动更新自己。
2023-12-15 13:57:17
339
原创 【设计模式--行为型--责任链模式】
为了避免请求发送者与多个请求处理者耦合到一起,将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到对象处理它为止。
2023-12-14 10:46:02
81
原创 【设计模式--行为型--命令模式】
将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通,这样方便将命令对象进行存储,传递,调用,增加与管理。
2023-12-13 15:28:35
426
原创 【设计模式--行为型--策略模式】
该模式定义了一系列算法,并将每个算法封装起来,使他们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分隔开,并委派给不同的对象对这些算法进行管理。
2023-12-13 11:16:44
432
原创 【设计模式--行为型--模板方法模式】
定义操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。
2023-12-13 10:37:43
321
原创 【设计模式--结构型--享元模式】
运用共享技术来有效的支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅减少需要创建的对象数量,避免大量相似的对象的开销,从而提高系统资源的利用率。
2023-12-11 19:44:37
225
原创 【设计模式--结构型--组合模式】
又称部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树型结构来组合对象,用来表示部分以及整体层次,这种类型的设计模式属于结构型模式,它创建了对象组的树型结构。
2023-12-11 18:07:28
378
原创 【设计模式--结构型--外观模式】
又称门面模式,时一种通过多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。外观模式是“迪米特法则”的典型应用。
2023-12-11 17:04:25
482
原创 【设计模式--结构型--桥接模式】
将抽象与实现分离,使他们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个维度的耦合度。
2023-12-10 16:58:47
308
原创 【设计模式--创建型--建造者模式】
将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。分离了部件的构建(由Builder来负责)和装配(由Director负责)。从而可以构建出复杂的对象。这个模式适用于:某个对象的构建过程复杂的情况。由于实现了构建和装配的解耦。不同的构建器,相同的装配,也可以做出不同的对象;相同的构建器,不同的装配顺序也可以做出不同的对象。实现了更好的复用。建造者模式可以将部件与其组装过程分开,一步一步创建一个复杂对象。用户只需要指定复杂对象的类型就可以获得该对象,而无需知道内部的构造细节。
2023-12-07 22:32:23
259
原创 【设计模式--创建型--工厂模式】
注意:简单工厂并不属于23种设计模式之一简单工厂包含如下角色: 修改手机店类 测试 结果 -优点:封装了创建对象的过程,可以通过参数直接获取对象。把对象的创建和业务逻辑层分开,这样以后就避免了修改客户代码,如果要实现新增产品直接修改工厂类,而不需要在原代码中修改。 工厂方法模式(一个工厂生产一种类对象的模式) 使用工厂方法模式,是完全遵循开闭原则的 结构 工厂方法模式的主要角色:具体类图: 小米手机类 华为手机类 抽象工厂: 小米手机工厂: 华为手机工厂 手机店类 测试 结果 此时若是再
2023-12-05 16:47:17
71
原创 【设计模式--创建型--单例模式】
静态内部类单例模式中实例有内部类创建,由于jvm在加载外部类的过程中是不会加载静态内部类的,只有静态内部类的属性或方法被调用时才会被加载,并初始化静态属性,由于静态属性被static修饰,保证只实例化一次,并且严格保证实例化顺序。枚举类实现单例模式是极力推荐的单例设计模式,因为枚举类型是线程安全的,并且只会装载一次,而且枚举类型是所有单例实现中唯一一种不会被破坏的单例实现模式。静态内部类单例模式时一种优秀的单例模式,是开源项目中比较常用的一种单例模式。特点:饿汉式的两种实现方式都会造成内存的浪费。
2023-12-04 19:30:15
133
原创 【无标题】简单的xml与JavaBean相互转换
xml中的Citys数组值可以用String[]来接收。xml的结构可以看成类似word文档的大纲。首先创建最外层的JavaBean。然后是第二层的JavaBean。多个book节点处理。
2022-07-31 12:08:52
825
原创 【maven】maven入门
项目构建提供标准的,跨平台的自动化项目构建方式依赖管理方便快捷的管理项目依赖的资源(jar包),避免资源版本冲突问题统一开发结构提供标准的,统一的项目结构。
2022-07-18 07:37:43
175
原创 【爬虫基础】正则表达式和re模块
目录:什么是正则表达式正则表达式语法单字符串匹配匹配多个字符串精确匹配与泛匹配贪婪匹配与非贪婪匹配开始和结束语法转义字符和原生字符串re模块中常用函数matchsearchgroup分组findallsubsplitcompile 什么是正则表达式 通俗理解:按照一定的规则,从某个字符串中匹配出想要的数据。这个规则就是正则表达式。 标准解释:https://baike.baidu.com/item/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1700215?
2022-05-12 23:55:44
299
原创 【爬虫基础】CSS选择器,XPath选择器
目录XPath什么是XPath?XPath开发工具XPath节点XPath语法案例总结CSS选择器案例标签选择器类选择器ID选择器属性选择器伪类选择器组合选择器 XPath 什么是XPath? xpath(XML Paht Language)是一门在XML和HTML文档中查找信息的语言,可用来在XML和HTML文档中对元素和属性进行遍历。 XPath开发工具 Chrome插件XPath Helper。 Fiefox插件Try XPath XPath节点 在XPath中,有7类节点:元素,属性,文本
2022-05-10 23:21:18
877
原创 【爬虫基础】requests库
requests库requestsrequests 关键字参数响应体常见的方法和属性cookiesession 会话维持处理不受信任的SSL证书 requests 虽然python的标准库中urllib模块已经包含了平常我们使用的大多数功能,但是它的API使用起来让人感觉不太好 requests 是用python编写,基于urllib,但是比urllib更加方便 requests 关键字参数 method: 请求方法 url: 请求网址 headers:请求头字段 cookies:用户身份标识 pro
2022-05-10 16:58:43
349
1
原创 【爬虫基础】urllib库
urllib: 自带的库 1.了解urllib库 2.熟悉掌握urllib库 3.熟悉urllib.request,处理cookie 代理设置 urllib常用库urlliburloppen()urlretrieve()urlencode(), quote(), parse_qs()urlparse(), urlsplit()request.Request类ProxyHandler()cookiehttp.CookieJar模块 urllib """ urllib库是python中一个最基本的网络请求库。可
2022-05-10 09:48:17
202
原创 【SQL Srever】视图 事务 索引 存储过程
目录视图为什么需要视图什么是视图视图的格式视图的优点视图的缺点注意的问题事务为什么需要事务事务和线程的关系事务和第三方插件的关系如何创建事务索引存储过程 视图 为什么需要视图 例:求出平均工资最高的部门的编号和编号-- 非视图写法 select * from ( select deptno, avg(sal) "avg_sal" from emp group by deptno ) "T" where "T"."avg_sal" = ( select max(avg_sal) fr
2022-05-10 01:50:48
280
原创 【SQL】SQL Server 之查询操作
计算列 distinct (不重复的) between (两者之间) in (属于若干个孤立的值) top null order by(排序) 模糊查询 聚合函数 group by(分组) having(对分组后的数据过滤)
2022-03-21 10:21:03
818
原创 【Python】快速排序,归并排序,堆排序
目录快速排序归并排序堆排序 快速排序 li = [i for i in range(1, 5000000)] random.shuffle(li) def quick_sort(li, left, right): if left < right: mid = partition(li, left, right) quick_sort(li, left, mid - 1) quick_sort(li, mid + 1, right) def
2022-03-21 09:42:58
1753
1
原创 【SQL Server】用sql命令创建表,修改表,创建约束
create table dept ( dept_id int constraint pk_dept primary key, -- dept表的主键,命名为pk_dept dept_name nvarchar(100) not null, dept_address nvarchar(100) ) create table emp ( emp_id int constraint pk_emp_id primary key, -- emp表的主键,命名为pk_emp_id emp_name.
2022-03-19 20:13:41
1833
原创 【SQL Server】基本概念
目录:基本概念数据库的组成数据库常用对象数据类型分类创建表及主外键 基本概念 数据库:DataBase 按照一定数据结构来组织,存储和管理数据的仓库。存储在一起的相关的数据的一个集合 数据库管理系统:DataBase Management System 为管理数据库而设计的一个电脑软件系统 分为两种: 关系型数据库:建立在模型基础上的数据库 SqlServer MySql Oaracle 非关系型数据库:不同点:不适用SQL作为查询语言 数据库系统: 数据库和数据库管理系统组成 数据库的组成 数
2022-03-19 17:07:51
880
原创 【Java】Collection 常用功能和迭代器
Collection常用功能 /* java.util.Collection接口 所有单列集合的最顶层接口,里边定义了所有单列集合的共性方法; 任意的单列集合都可以使用Collection接口中的方法 共性方法: public boolean add(E e); 把给定的对象添加到当前集合中 public void clear(); 清空集合 public boolean remove(E e); 把给定的对象在当前集合中删除 public boolean contains(E e); 判断当
2022-03-14 08:53:06
141
原创 【Java】快速排序,归并排序,堆排序
Java 快速排序 归并排序 堆排序 快速排序 public class Main{ public static void main(String[] args){ } } 归并排序 public class Main{ public static void main(String[] args){ } } 堆排序 public class Main{ public static void main(String[] args){ } } ...
2022-03-12 16:20:29
1342
原创 【Java】ArrayList集合概述和基本使用
目录ArrayList 创建ArrayList 集合常用方法ArrayList 存储基本数据 ArrayList 创建 /* ArrayList 集合的长度是可以随意变化的 对于ArrayList来说,有一个尖括号<E>代表泛型 泛型:也就是装在集合当中的所有元素,全都是统一的 注意:泛型只能是引用类型,不能是基本类型。 对于ArrayList来说,直接打印得到的不是地址值,而是内容如果内容是空,得到[] */ public class Main{ public static void
2022-03-07 23:45:14
241
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人