上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 22 下一页

2017年8月11日

摘要: 设计原则1: 找出应用中可能需要变化的部分,把他们独立出来,不要和那些不需要变化的部分融合在一起。 设计原则2: 针对接口编程,而不是针对实现编程。 这里的接口包含抽象类。 编程时针对超类型(父类)进行编程,也就是说变量的声明类型(或方法的返回类型)是超类型,而不是具体的某个子类。 设计原则3: 多用组合 少用继承。 组合和继承都能作为将不变的代码和变化的代码分开的方式,但是组合更加灵活,可以将一... 阅读全文
posted @ 2017-08-11 15:18 张小贱1987 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。 适配器模式有类的适配器模式和对象的适配器模式两种不同的形式。 类适配器模式 类的适配器模式把适配的类的API转换成为目标类的API。 在上图中可以看出,Adaptee类并没有sampleOperation2()方法,而客户端则期待这个方法... 阅读全文
posted @ 2017-08-11 14:48 张小贱1987 阅读(168) 评论(0) 推荐(0) 编辑

2017年8月10日

摘要: 单例模式的几种实现方式 单例模式的实现有多种方式,如下所示: 1、懒汉式,线程不安全 是否 Lazy 初始化:是 是否多线程安全:否 实现难度:易 描述:这种方式是最基本的实现方式,这种实现最大的问题就是不支持多线程。因为没有加锁 synchronized,所以严格意义上它并不算单例模式。这种方式 lazy loading 很明显,不要求线程安全,在多线程不... 阅读全文
posted @ 2017-08-10 16:14 张小贱1987 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 简单工厂模式 public class ShapeFactory { //使用 getShape 方法获取形状类型的对象 public Shape getShape(String shapeType){ if(shapeType == null){ return null; ... 阅读全文
posted @ 2017-08-10 11:07 张小贱1987 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 装饰器模式 典型的例子:JAVA IO。 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。 这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。 我们通过下面的实例来演示装饰器模式的用法。其中,我们将把一个形状装饰... 阅读全文
posted @ 2017-08-10 10:41 张小贱1987 阅读(138) 评论(0) 推荐(0) 编辑

2017年8月9日

摘要: 关于基本的OOP特征: OOP的几大特征是抽象 继承 封装 多态。 我们把共同的部分抽象出来作为抽象类的存在,使用继承和接口来实现多态,然后私有的部分封装起来。一定程度上说,这些概念都是简单的设计模式。 设计原则1: 找出应用中可能需要变化的部分,把他们独立出来,不要和那些不需要变化的部分融合在一起。 设计原则2: 针对接口编程,而不是针对实现编程。 这里的接口包含抽象类。 设计原则3: 多用... 阅读全文
posted @ 2017-08-09 21:56 张小贱1987 阅读(149) 评论(0) 推荐(0) 编辑

2017年8月8日

摘要: 来自:http://didiluck.iteye.com/blog/1779640 Spring 标注@Autowired 如果做到自动装配私有变量而不使用set方法的原理熟悉jdk的话就知道,方法就是使用java.lang.reflect.Field类的:Field.setAccessible(true); 将字段设置为'true',就可以直接使用set方法为其赋值了。如果不设置'true... 阅读全文
posted @ 2017-08-08 22:38 张小贱1987 阅读(296) 评论(0) 推荐(0) 编辑
摘要: DIP: Dependency Inversion Principle。翻译过来是依赖反转原则,也叫依赖倒置原则。 依赖倒置原则是设计模式几个重要原则之一。具体定义就是,底层模块依赖高层模块定义的接口,高层模块不依赖底层模块的实现。 IOC:Inversion of Control。控制反转。 控制反转是实现依赖倒置的一种设计模式。在高层模块引入底层模块的实现的时候,不再通过在本身new的方式来创... 阅读全文
posted @ 2017-08-08 11:54 张小贱1987 阅读(113) 评论(0) 推荐(0) 编辑

2017年8月7日

摘要: 下载源代码包并解压,我下载的是3.2版本,下载地址在https://github.com/spring-projects/spring-framework/tree/3.2.x 因为Spring是使用gradle管理的,所以要下载gradle,下载地址在https://gradle.org/releases/,下载后解压,配置环境变量到bin目录。 执行Spring下载目录下的import-in... 阅读全文
posted @ 2017-08-07 21:50 张小贱1987 阅读(213) 评论(0) 推荐(0) 编辑

2017年8月6日

摘要: B-Tree和B+Tree 目前大部分数据库系统及文件系统都采用B-Tree或其变种B+Tree作为索引结构。 首先,对单个节点来说,是一个key value结构,key是作引的列,value有两种,对于聚簇索引来说,value就是数据,对于二级索引来说,value就是指向数据的地址。 B-Tree的结构如下: B-tree的特点是非叶子节点上也有数据。 B+Tree是B-... 阅读全文
posted @ 2017-08-06 19:38 张小贱1987 阅读(2724) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 22 下一页

导航