2019-11-20 16:19
前面工厂方法模式中考虑的是一类产品的生产, 如畜牧场只管动物、电视机厂只产电视机等.
同种类称为同等级, 也就是说,工厂方法模式只会考虑生产同等级的产品,但是在现实生活中许多工厂都是综合性很强的,也会加大工厂的最大使用效率,能够生产出多等级的产品. 畜牧场可以养动物,也可以养植物等.
本篇博客将讲述抽象工厂方法模式.抽象工厂模式将考虑多等级的产品同时生产,将处于同一个具体工厂所生产的不同等级的产品作为一个产品族.
模式的定义与特点
定义
是一种为访问类创建一组相关或者相互依赖的接口,并且访问类不需要制定所要的产品的具体类就可以得到同族不同等级的产品模式结构.
...
2019-11-20 16:33
腾讯云年度的开发者大会已经落幕,大会包括1场前沿技术主峰会,18个技术专场,150位海内外技术专家,28个互动展区,8场动手实验室,23小时小程序云开发极限编程,1场数据库诊断大赛。内容上涵盖了最新云计算发展趋势,来自谷歌、Netflix、腾讯等技术先锋分享的云上基础设施演进、云原生、机器学习、音视频等;同时,腾讯在大会现场发布了四大开源联合项目:分布式消息中间件TubeMQ、Tencent Kona JDK、分布式HTAP数据库TBase、企业级容器平台TKEStac。...
2019-11-18 17:28
前言
最近在写项目的时候发现自己的SQL基本功有些薄弱,遂上知乎查询MYSQL关键字,期望得到某些高赞答案的指点,于是乎发现了
https://www.zhihu.com/question/34840297/answer/272185020 这位老兄的建议的书单,根据他的建议首先拜读了《MYSQL必知必会》这本书,整体讲的很基础,页数也不多一共 253 页,适合基础比较薄弱的同学进行食用。然后循序渐进,阅读更深层次的书籍进行自我提升。这里记载了自己在阅读的过程中记录的一些关键内容,分享给大家。书本 PDF 可以在上面的知乎链接获取,或者点击 http://www.notedeep.com/note/38/page/282 前往老哥的深度笔记进行下载。
...
2019-11-18 17:36
文地址 https://sspai.com/post/35225
让我们从实际需求出发,看看问题出在哪里,并在此基础上认识和学习使用 Hazel。
电脑随着使用时间的增长,其中的文件也在疯狂的增长,时间长了也就会出现各种混乱:大量文件堆放在一起,旧文件很少清理,分不清哪些文件还有用,找不到需要的文件等等。
今天我们就以「下载」和「桌面」为例,聊一聊如何整理我们的电脑。
Downloads:下载的文件很少处理,时间一长就各种堆积……
Desktop:经常把临时文件存放在此,方便拖拽使用,但时间一长,就是各种凌乱……
...
2019-11-18 17:33
一、故事的起因
JDK1.8最重要的就是引入了红黑树的设计(当冲突的链表长度超过8个的时候),为什么要这样设计呢?好处就是避免在最极端的情况下冲突链表变得很长很长,在查询的时候,效率会非常慢。
红黑树查询:其访问性能近似于折半查找,时间复杂度O(logn);
链表查询:这种情况下,需要遍历全部元素才行,时间复杂度O(n);
本文主要是讲解红黑树的实现,只有充分理解了红黑树,对于后面的分析才会更加顺利。
简单的说,红黑树是一种近似平衡的二叉查找树,其主要的优点就是“平衡“,即左右子树高度几乎一致,以此来防止树退化为链表,通过这种方式来保障查找的时间复杂度为log(n)。
...
2019-11-18 17:39
在TDD领域Mock框架有很多,比如EasyMock,JMock,Mockito。可能有些同学会好奇了,为什么要重点把powermock拿出来呢,因为powermock可以解决前面三种框架不能解决的问题,而且powermock也是是单元测试中极其强大的测试框架。
powermock特点
主要围绕着Junit、TestNg测试框架开展进行
对所依赖的Jar包非常的苛刻,出现jar包的冲突或者不一致就不能使用
PowerMock也是一种Mock,主要是解决其他Mock不能解决的问题,通俗的讲,就是专治各种不服
...
2019-11-18 17:59
三模块:盒子模型、浮动 、定位。上篇博客有讲到 盒子模型地址:CSS(5)---通俗讲解盒子模型...
2019-11-18 17:25
以前学Java的时候,和Spring全家桶打好关系就行了,从Spring、Spring MVC到SpringBoot,一脉相承。
对于一个Web项目,使用Spring MVC,就可以基于MVC的思想开发项目了,不管是应对前后端分离还是不分离的场景,你都可以轻松驾驭。因为你只要知道,你用的是一个Web开发框架就行了。
相比于Spring在Java一家独大的局面,Go生态中的Web框架还在百家争鸣的阶段。从今天开始学习一款基于Go语言开发的Web开发框架Gin。
简介
Github:https://github.com/gin-gonic/gin
...
2019-11-18 16:46
Redis 的读写都是在内存中,所以它的性能较高,但在内存中的数据会随着服务器的重启而丢失,为了保证数据不丢失,我们需要将内存中的数据存储到磁盘,以便 Redis 重启时能够从磁盘中恢复原有的数据,而整个过程就叫做 Redis 持久化。
image.png
Redis 持久化也是 Redis 和 Memcached 的主要区别之一,因为 Memcached 是不具备持久化功能的。
1.持久化的几种方式
Redis 持久化拥有以下三种方式:
快照方式(RDB, Redis DataBase)将某一个时刻的内存数据,以二进制的方式写入磁盘;
...
2019-11-18 16:15
本文Python版本为3.7.X,阅读本文之前需了解python字典的基本用法。介绍...
2019-11-18 16:12
本篇将围绕 《试试 IEnumerable 的 10 个小例子》和《试试 IEnumerable 的另外 6 个小例子》给出的例子,总结一下对于 IEnumerable 接口的一些使用方法,希望读者能够从中获得一些启发。
框架类型的迭代
对于一个实现了 IEnumerable 接口的类型来说,开发中最常用的,就是把这个类型的对象放入到 foreach 等循环关键词中进行迭代,遍历其中的元素进行处理。
这种遍历通常分为两种目的:遍历和查找。
IEnumerable 及其泛型版本 IEnumerable 定义了一个类型的 “可迭代性”。这点很容易理解,系统中的很多集合类型都实现了该接口。
...
2019-11-18 16:38
ChuanGoing 2019-11-17 这篇原本想把事务处理、日志处理、错误处理、授权与鉴权一并介绍完的,授权和鉴权我想结合自定义权限来介绍,全部放到这里篇幅可能太长,因此权限部分将会在下篇来介绍。先说下我接下来的打算把,下篇将介绍权限控制,结合Oauth2.0和OpenId(OIDC)以及自定义权限来介绍;完了后会结合之前所介绍的基础来实现一个简单的电商网站,当然是利用领域驱动设计来实现。我的这个系列的主题就是领域驱动设计,实现简单电商网站时将会深入的讲解下领域的划分原则及领域服务的场景,中间可能会尝试部分业务实现事件驱动。...
2019-11-18 16:55
公众号回复 Compose 获取安装包
项目地址: Wanandroid-Compose
经过前段时间的 Android Dev Summit ,相信你已经大概了解了 Jetpack Compose 。如果你还没有听说过,可以阅读这篇文章 Jetpack Compose 最新进展 。总而言之,Compose 是一个 颠覆性 的 声明式 UI 框架 ,它的口号就是 消灭 xml 文件 !
尽管 Jetpack Compose 还只是预览版,API 可能发生变化,缺乏足够的控件支持,甚至不是那么稳定,但这阻止不了我这颗好奇的心。我在第一时间就上手撸了一款 Compose 版本 Wanandroid 应用,功能也比较简单,仅仅包括首页,广告和最新项目,类似于 Android 原生页面的 Viewpager + TabLayout 。下面的 gif 展示了应用的基本页面:
...