设计模式
anthony_ll
长方形混凝土瞬间移动师
展开
-
设计模式(三)策略模式
在学习策略模式之前我们先回顾一下之前简单工厂模式中介绍的简单计算器的实现,首先我们创建了一个父类Operation,拥有两个父类属性num1和num2,还有一个父类方法getResult(),接着我们创建四个实现类通过重写getResult()方法分别实现的加减乘除的操作,然后我们需要一个工厂类OperationFactory来管理生产我们实际会使用到的对象,最后在客户端方法中,我们通过不同的op...原创 2018-12-12 15:44:59 · 162 阅读 · 0 评论 -
设计模式(四)几个设计原则
在设计模式的选择使用过程中,为使软件具有可拓展、可复用、高灵活、易维护的优点,我们需要了解几个设计原则。 1. 单一职责原则 软件编码过程中,如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计或遭受到意想不到的破坏。软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离。——《大话设计...原创 2018-12-13 15:07:39 · 147 阅读 · 0 评论 -
设计模式(五)装饰模式
装饰模式的目的在于将一些不同的功能块按正确的顺序串联起来进行控制,并且动态的增加我们想要的功能来对主体进行装饰。 比如我们穿衣服,如果把每件衣服看成一个装饰功能,那么我们根据衣服的种类不同可以有很多种搭配方式和穿衣顺序,用程序来体现的话,为了易于扩展,我们把每个衣服都写成一个类,都有一个方法show()实现穿衣的逻辑,并且可以提取出公共的抽象,在客户端方法中,我们new出所需要穿的衣服的对象,按照...原创 2018-12-14 16:17:26 · 142 阅读 · 0 评论 -
设计模式(一)简单工厂模式
所有的设计模式,当然是依附于我们的业务开发。先来模拟一个需求,输入两个数字和操作符,实现加减乘除运算的功能,返回结果。看到这个需求,最初级的实现思想应该是下面这样: //计算器类 public class Operation { public static void main(String[] args){ System.out.println(getResult("1"...原创 2018-12-11 11:52:22 · 183 阅读 · 0 评论 -
设计模式(二)抽象工厂模式
工厂模式的核心其实就是通过一个工厂类来管理生产我们所需要的不同的对象,用于解决单个产品系列中对业务操作的拆分解耦,而今天学习的抽象工厂模式其实是一种特殊的工厂模式,用来解决涉及到多个产品系列的问题。我们借用《大话设计模式》中的例子来说明。 假如现在需要实现用户管理中获取用户信息的小功能,但是需要同时支持SQL server和Oracle两种数据库,做到尽量少的改动自如切换数据库,这时候就用到了我们...原创 2018-12-11 17:02:33 · 111 阅读 · 0 评论