自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 《代码整洁之道》读书总结

最近阅读了一本关于如何写出优质代码的书,叫《代码整洁之道》,对我本人启发挺大的,尤其对于其中“像讲故事那样写代码”的理念非常认同,所以在完成了书籍的阅读后,将其中的关键点总结了一个思维导图,记录如下:...

2020-07-10 19:29:58 218

原创 搞懂Java集合框架之:01.ArrayList源码分析

ArrayList源码分析集合框架概览ArrayList继承结构ArrayList成员变量ArrayList对象的创建自动扩容核心方法分析Fail-Fast机制应用中的总结与LinkedList的遍历比较与数组的比较和取舍四种遍历方式常见面试题总结参考资料在我们平时的开发过程中,ArrayList基本上是使用最多的一个集合类,它本质上是一个可以自动扩容的动态数组。为了一探ArrayList的究竟和实现原理,也为了学习高手的代码以提升自己的抽象设计能力,本篇博客深入ArrayList源码,对其具体实现如扩

2020-07-09 22:52:20 379

原创 重构技术示例:02.移动方法(Move Method)

函数应该放在它所使用的数据的所属对象内初始代码public class Customer { private String name; private Vector _rentals = new Vector(); public Customer(String name) { this.name = name; } public void addRental(Rental rental) { _rentals.add(rent

2020-06-15 10:55:08 540

原创 重构技术示例:01.提取方法(Extract Method)

原来的代码public class Customer { private String name; private Vector _rentals = new Vector(); public Customer(String name) { this.name = name; } public void addRental(Rental rental) { _rentals.add(rental); } pub

2020-06-14 23:48:59 418

原创 23个设计模式学习笔记:06.装饰模式

装饰模式“单一职责”模式典型模式动机(Motivation)模式定义结构(Structure)要点总结代码示例参考资料“单一职责”模式在软件组件的设计中,如果职责划分的不清晰,使用继承得到的结果往往是随着需求的变化,子类急剧膨胀,同时充斥着重复代码,这时候的关键是划清责任典型模式装饰模式(Decorator)桥接模式(Bridge)首先介绍装饰模式动机(Motivation)在某些情况下我们可能会“过度地使用继承来扩展对象的功能”,由于继承为类型引入的静态特质,使得这种扩展方式缺乏

2020-05-28 00:07:21 101

原创 23个设计模式学习笔记:05.观察者模式

观察者模式动机(Motivation)模式定义结构(Structure)要点总结代码示例参考资料动机(Motivation)在软件构建过程中,我们需要为某些对象建立一种“通知依赖关系”,——一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知,如果这样的依赖关系过于紧密,将使软件不能很好地抵御变化使用面向对象技术,可以将这种依赖关系弱化,并形成一种稳定的依赖关系,从而实现软件体系的松耦合模式定义定义对象间的一种一对多(变化)的依赖关系,以便当一个对象的状态发生改变时,所有

2020-05-25 00:07:20 124

原创 23个设计模式学习笔记:04.策略模式

策略模式动机(Motivation)模式定义结构(Structure)要点总结代码示例:SpringMVC中的一个应用实例动机(Motivation)在软件构建过程中,某些对象使用的算法可能多种多样,经常改变,如果将这些算法都编码到对象中,将会使对象变得异常复杂,而且有时候支持不使用的算法也是一个性能负担如何在运行时根据需要透明地更改对象的算法?将算法与对象本身解耦,从而避免上述问题?最直观的实现:枚举+switch-case从需求变化时间轴的角度考虑代码设计复用指的是编译后的字节码的复用,

2020-05-18 21:44:20 189

原创 23个设计模式学习笔记:03.模板方法模式

模板方法模式GOF-23 模式分类从封装变化角度对模式进行分类重构获得模式(Refactoring to Patterns)图书推荐重构关键技法“组件协作”模式模板方法模式(Template Method)动机(Motivation)结构化软件设计流程面向对象软件设计流程早绑定与晚绑定模式定义结构(Structure)要点总结GOF-23 模式分类从目的来看创建型(Creational)模式:将对象的创建工作延迟到子类或者其它对象,从而应对需求变化为对象创建时具体类型实现引来的冲击结构型(Str

2020-05-17 19:44:09 231

原创 23个设计模式学习笔记:02.面向对象设计原则

面向对象设计原则面向对象设计,为什么?重新认识面向对象面向对象设计原则1. 依赖倒置原则(DIP)2. 开放封闭原则(OCP)3. 单一职责原则(SRP)4. Liskov替换原则(LSP)5. 接口隔离原则(ISP)6. 优先使用对象组合,而不是类继承7.封装变化点8.针对接口编程,而不是针对实现编程面向接口设计将设计原则提升为设计经验面向对象设计,为什么?变化是复用的天敌!面向对象设计最大的优势在于:抵御变化!重新认识面向对象理解隔离变化从宏观层面看,面向对象的构建方式更能适应软件的变化,

2020-05-15 00:48:56 264

原创 23个设计模式学习笔记:01.设计模式简介

设计模式简介课程链接课程目标什么是设计模式?书籍推荐从面向对象谈起深入理解面向对象软件设计固有的复杂性软件设计复杂的根本原因如何解决复杂性课程链接https://www.bilibili.com/video/BV1kW411P7KS课程目标理解松耦合设计思想掌握面向对象设计原则掌握重构技法改善设计掌握GOF核心设计模式什么是设计模式?每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,这样你就能一次又一次地使用该方案而不必重复劳动。书籍推荐《设计

2020-05-14 01:18:40 139

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除