- 博客(7)
- 收藏
- 关注
原创 设计模式(五)装饰模式
装饰模式的目的在于将一些不同的功能块按正确的顺序串联起来进行控制,并且动态的增加我们想要的功能来对主体进行装饰。 比如我们穿衣服,如果把每件衣服看成一个装饰功能,那么我们根据衣服的种类不同可以有很多种搭配方式和穿衣顺序,用程序来体现的话,为了易于扩展,我们把每个衣服都写成一个类,都有一个方法show()实现穿衣的逻辑,并且可以提取出公共的抽象,在客户端方法中,我们new出所需要穿的衣服的对象,按照...
2018-12-14 16:17:26 121
原创 设计模式(四)几个设计原则
在设计模式的选择使用过程中,为使软件具有可拓展、可复用、高灵活、易维护的优点,我们需要了解几个设计原则。 1. 单一职责原则 软件编码过程中,如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计或遭受到意想不到的破坏。软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离。——《大话设计...
2018-12-13 15:07:39 127
原创 设计模式(三)策略模式
在学习策略模式之前我们先回顾一下之前简单工厂模式中介绍的简单计算器的实现,首先我们创建了一个父类Operation,拥有两个父类属性num1和num2,还有一个父类方法getResult(),接着我们创建四个实现类通过重写getResult()方法分别实现的加减乘除的操作,然后我们需要一个工厂类OperationFactory来管理生产我们实际会使用到的对象,最后在客户端方法中,我们通过不同的op...
2018-12-12 15:44:59 136
原创 设计模式(二)抽象工厂模式
工厂模式的核心其实就是通过一个工厂类来管理生产我们所需要的不同的对象,用于解决单个产品系列中对业务操作的拆分解耦,而今天学习的抽象工厂模式其实是一种特殊的工厂模式,用来解决涉及到多个产品系列的问题。我们借用《大话设计模式》中的例子来说明。 假如现在需要实现用户管理中获取用户信息的小功能,但是需要同时支持SQL server和Oracle两种数据库,做到尽量少的改动自如切换数据库,这时候就用到了我们...
2018-12-11 17:02:33 93
原创 设计模式(一)简单工厂模式
所有的设计模式,当然是依附于我们的业务开发。先来模拟一个需求,输入两个数字和操作符,实现加减乘除运算的功能,返回结果。看到这个需求,最初级的实现思想应该是下面这样: //计算器类 public class Operation { public static void main(String[] args){ System.out.println(getResult("1"...
2018-12-11 11:52:22 165
原创 JVM内存区域的划分
Java虚拟机的内存区域 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分成若干个不同的数据区域,这些区域都有各自的用途,各自的创建和销毁的时间。有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。 —— 倪升武 Java虚拟机运行时将内存划分成以上几块区域,每个区域都有各自的特点。 1.1 程序...
2018-11-16 17:45:54 232
原创 Java static关键字的理解
今天在学习一些jvm内存划分相关知识的时候涉及到了一些静态变量的知识,回忆起来总觉得不够系统,所以又复习总结了一下Java中static关键字的相关知识点。static关键字作为Java基础知识中比较难理解的一个点,一直学习得不够深刻,也比较容易遗忘,这篇博客会尽量详尽地归纳相关知识。 ...
2018-11-09 12:45:35 224
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人