- 博客(240)
- 资源 (5)
- 问答 (7)
- 收藏
- 关注
原创 每天一个设计模式之解释器模式(Interpreter Pattern)
这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。
2022-08-16 17:52:04
330
原创 每天一个设计模式之命令模式(Command Pattern)
命令模式将请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。
2022-08-16 16:09:57
186
原创 每天一个设计模式之访问者模式(Visitor Pattern)
设计模式有23种之多,要想记住这二十多种模式的确不太容易,但是如果将模式的名字与典型的场景结合起来可能会更容易记忆。对于访问者模式,一个典型的例子就是。访问者模式的意图是将易变的操作和稳定的数据结构分离开。文本典型的例子中,一个地方的景区基本上是稳定不变的,而对不同游客所做的优惠活动则会有很多不同的类型,比如学生游客,教师游客,老年游客,外国游客,抗疫志愿者游客等等。......
2022-08-16 10:03:36
188
原创 每天一个设计模式之中介者模式(Mediator Pattern)
中介者模式提供一个中间类,用于处理其他不同类之间的通信,其他类对象之间不需要显示地相互引用,从而使其松散耦合。典型的例子——星形网络。
2022-08-16 07:23:41
176
原创 每天一个设计模式之模板方法模式(Template Method Pattern)
所谓的模板模式就是基类(抽象类)提供出定义好的一个模板(空实现+默认实现),子类按照模板封装好的顺序去填充模板内方法的实现。
2022-08-16 06:10:43
236
原创 每天一个设计模式之状态模式(State Pattern)
状态模式适用于行为随状态改变而改变的场景,可以替换掉一个系统中依据内部状态而添加的条件、分支语句。
2022-08-15 16:33:05
196
原创 每天一个设计模式之策略模式(Strategy Pattern)
策略模式的适用场景是,当一个系统中只有算法策略变化,而其他都不变,这时候应当将算法隔离开,策略模式就是解决这类问题的模式。
2022-08-15 15:12:13
218
原创 每天一个设计模式之责任链模式(Chain of Responsibility Pattern)
为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。......
2022-08-15 10:43:30
205
原创 每天一个设计模式之观察者模式+发布订阅模式(Observer Pattern)
观察者模式定义了一套机制,可以实现一对多的关系,当“一”(被观察者)的状态发生了变化,会通知“多”个(观察者),这是行为型模式。
2022-08-14 13:49:35
294
原创 每天一个设计模式之过滤器模式(Filter/Criteria Pattern)
过滤器模式(Filter Pattern)或标准模式(Criteria Pattern)是一种行为型设计模式。这种模式允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。
2022-08-14 10:59:05
760
原创 每天一个设计模式之享元模式(Flyweight Pattern)
享元是共享对象的意思,用来解决重复对象的内存浪费的问题。缓冲池就是为了共享对象而出现的一种技术,常见的使用池技术的场景有String常量池、数据库连接池、缓冲池等。
2022-08-14 08:55:44
257
原创 每天一个设计模式之外观模式(Facade Pattern)
外观模式给多个复杂子系统提供一个统一的界面,使得用户对子系统的使用更简便。用户故事:家庭影院中有一套智能设备,每个设备都有若干个操作方法,用户希望通过一个手机APP经过简单的几个按键就对所有设备执行启动、关闭等操作。.........
2022-08-11 22:10:27
210
原创 每天一个设计模式之桥接模式
super(c);super(c);} }桥接模式的优点: 1、抽象和实现的分离。2、优秀的扩展能力。3、实现细节对客户透明。这个模式可以实现两个变化维度(形状、颜色)随意地扩展、随意地组合,降低了不同部件之间的耦合性,提高了代码的扩展性。......
2022-08-11 18:23:34
245
原创 每天一个设计模式之适配器模式
适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁,它结合了两个独立接口的功能,将另一个不兼容的接口转化为可接收的接口,是一种行为型模式。
2022-08-11 15:19:20
210
原创 每天一个设计模式之装饰器模式
装饰器模式(Decorator Pattern),是一种行为型模式。该模式的目的是给对象动态地添加新特性。现实中的场景如,给咖啡添加调味品(牛奶,糖之类),给房间添加各种装饰物等等。
2022-08-11 11:15:35
421
原创 每天一个设计模式之组合模式
组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。这种模式创建了一个包含自己对象组的类。............
2022-08-11 09:53:54
191
原创 每天一个设计模式之代理模式(静态代理、动态代理)
代理模式是一种行为型模式,这个模式的意图是为其他对象提供一种代理以控制对原始对象的访问。为何需要代理?因为有时候直接访问原始对象会带来问题,比如,要访问的对象在远程的机器上,或者某些操作需要安全控制。比如下面这个Document类,它的访问没有任何安全控制,谁都可以执行它的view和edit方法,在现实中这是不合理的,应当对文档加入访问权限的控制。............
2022-08-10 17:20:07
169
原创 每天一个设计模式之工厂模式(无工厂、简单工厂、工厂方法、抽象工厂)
工厂模式属于创建型模式,通常所说的工厂模式指工厂方法模式,而简单工厂(或者说静态工厂)不属于GoF设计模式。本文从无工厂模式谈起,讲解为何演化出一系列的工厂模式。
2022-08-10 11:04:10
258
原创 每天一个设计模式之Builder模式
Builder模式也是一种创建型模式,它主要适用于创建具有较多属性的对象,有些属性是可选的,有些是必选的。拿电脑攒机来举例,CPU、硬盘、内存条、主板等部件是必须具备的,而显示器、键盘、鼠标等不一定需要(比如服务器),这样的场景非常适合使用Builder模式来创建对象。......
2022-08-09 18:49:58
402
原创 每天一个设计模式之原型模式
原型模式属于5种创建型的一种,顾名思义,它是以某个对象为原型构造出与原型对象一模一样的“复制品”。这种对象创建模式可类比孙悟空拔一根毫毛吹出十万个与自己一样的美猴王。很多编程语言都提供了一种clone机制,可以快捷地实现出原型模式。......
2022-08-09 17:10:31
231
原创 每天一个设计模式之单例模式(六种写法)
每天学会一个设计模式,让你的代码优雅起来。本篇介绍单例模式6种写法,从简单到复杂,从缺陷到完善,尽量cover所有面试点。
2022-08-08 13:06:53
277
原创 Python爬虫初体验
from bs4 import BeautifulSoupfrom selenium import webdriverimport requestsimport timeheaders = {'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.2 Safari/605.1.15'}def judgment_sex(class_name).
2020-09-28 15:54:42
191
原创 EXCEL常用功能
一、EXCEL能做什么数据存储,数据处理,数据分析,数据呈现二、重要概念1. 常用文件类型工作簿文件 XLS/XLSX工作区文件 XLW2. 工作簿-工作表-单元格3. 快速找到最左-右-上-下边界,双击单元格的左-右-上-下边框4. 新建窗口,全部重排,冻结窗格,切换窗口,保存工作区5. 填充柄-拖拽(直接拖拽是序列,CTL+拖拽是复制,右键拖拽有更多选项)...
2019-12-02 20:06:48
626
原创 单词积累
compellingadjectiveUK/kəmˈpel.ɪŋ/US/kəmˈpel.ɪŋ/compellingadjective(STRONG)If areason,argument, etc. is compelling, it makes youbelieveit oracceptit because it is sostrong.(理...
2019-12-02 09:51:16
816
原创 什么是拓扑
拓扑学是几何学的一个分支,但是这种几何学又和通常的平面几何、立体几何不同。通常的平面几何或立体几何研究的对象是点、线、面之间的位置关系以及它们的度量性质。拓扑学对于研究对象的长短、大小、面积、体积等度量性质和数量关系都无关。举例来说,在通常的平面几何里,把平面上的一个图形搬到另一个图形上,如果完全重合,那么这两个图形叫做全等形。但是,在拓扑学里所研究的图形,在运动中无论它的大小或者形状都发生变...
2019-11-29 22:07:27
4653
转载 Word 查找替换通配符
These wildcards are handy for finding words that you don't know how to spell.For example, if you are not sure how to spell receive, you can typerec??ve. Word then locates any word that begins with...
2019-11-29 21:29:23
301
转载 蓝光光盘
蓝光光盘(英语:Blu-rayDisc,缩写:BD)是DVD之后的下一代光盘格式之一,用以存储高质量的影音以及高容量的数据。蓝光光盘是由索尼及松下电器等企业组成的蓝光光盘联盟(Blu-ray Disc Association)策划的次世代光盘规格,并以索尼为首于2006年开始全面推动相关产品。蓝光光盘命名是由于其采用波长405纳米的蓝色激光光束来进行读写操作(DVD采用650纳米波长...
2019-11-29 16:20:33
1807
转载 多媒体技术/图像的数字化
基本概念现实空间中,以照片或视频等形式记录的图像在亮度和颜色等信号上都是连续的,属于模拟信号,这样的图像有时也称为模拟图像。而计算机是无法接收和直接处理这些连续的模拟信号的,因此要对这些图像进行数字化,要将这些图像转化为用一系列数据表示的数字图像。这一转换过程就称为图像的数字化。所谓数字化图像,就是将图像上每个点的信息按某种规律(模拟/数字转换)转换成一系列二进制数的编码,即用二进制编码来表...
2019-11-29 15:28:29
5889
原创 NestedScrollview 不从顶部显示
从stackoverflow上找到了满意的答案https://stackoverflow.com/questions/33584187/nestedscrollview-wont-start-from-top问题页面:本应该是这样:
2019-08-29 17:49:38
743
原创 AngularJs学习笔记
ng-app指令指明了应用,ng-controller指明了控制器。AngularJS模块(Module)定义了 AngularJS 应用。AngularJS控制器(Controller)用于控制 AngularJS 应用。AngularJS 表达式 与 JavaScript 表达式类似于 JavaScript 表达式,AngularJS 表达式可以包含字母,操作...
2019-05-30 15:55:04
220
原创 5051. Valid Boomerang
Aboomerangis a set of 3 points that are all distinct andnotin a straight line.Given a listof three points in the plane, return whether these points are a boomerang.Example 1:Input: [[1...
2019-05-05 11:42:46
334
原创 Leetcode 1021. Remove Outermost Parentheses
A valid parentheses string is either empty(""),"(" + A + ")", orA + B, whereAandBare valid parentheses strings, and+represents string concatenation. For example,"","()","(())()", and"(()...
2019-04-07 13:13:40
365
原创 Leetcode 1028. Convert to Base -2
Given a numberN, return a string consisting of"0"s and"1"sthat represents its value in base-2(negative two).The returned string must have no leading zeroes, unless the string is"0".Exam...
2019-03-31 18:05:14
279
原创 Leetcode 1030. Next Greater Node In Linked List
We are given a linked list withheadas the first node. Let's number thenodes in the list:node_1, node_2, node_3, ...etc.Each node may have anext largervalue: fornode_i,next_larger(node_i)...
2019-03-31 13:32:16
251
原创 Leetcode 1029. Binary Prefix Divisible By 5
Given an arrayAof0s and1s, considerN_i: the i-th subarray fromA[0]toA[i]interpretedas a binary number (from most-significant-bit to least-significant-bit.)Return a list of booleansanswer...
2019-03-31 13:31:20
299
原创 Leetcode 114. Flatten Binary Tree to Linked List
Given a binary tree, flatten it to a linked list in-place.For example, given the following tree: 1 / \ 2 5 / \ \3 4 6The flattened tree should look like:1 \ 2 \ ...
2019-03-30 16:32:20
170
原创 Leetcode 476. Number Complement
Given a positive integer, output its complement number. The complement strategy is to flip the bits of its binary representation.Note:The given integer is guaranteed to fit within the range of a ...
2019-03-30 14:20:25
152
腾讯TBS是否支持docx, xlsx等格式?
2019-06-11
Android MVVM中如何使用三目运算符在运行时设置图片资源?
2019-01-14
Android Framework如何深入学习?
2019-01-11
Android Runtime和虚拟机之间是什么关系?
2019-01-11
如何深入了解一个开源库?
2018-11-29
Android执行下载任务是否需要Service?
2018-11-24
下面这段代码的两个同步怎么理解?
2016-11-05
TA创建的收藏夹 TA关注的收藏夹
TA关注的人