- 博客(10)
- 收藏
- 关注
原创 模板模式
模式简介 先说一个场景,考生考试,老师发下来的卷子,然后学生在上面答题。每个人的卷子都是一样的。交卷之后每张卷子只有答案不一样。这样的话,因为卷子是一样的,只有答案不一样。因为卷子是一样的。所以可以让空卷子做一个父类,然后让每个人的卷子作为子类,继承空卷子。这就是模板模式。 我写了一个demo,不过这个demo和我说的不太一样。我写的是这样的。以去银行为背景。 1.
2018-01-11 20:09:54 185
原创 外观模式
外观模式,这个模式主要是用来解耦的。他主要是降低两个子系统之间的关系。举个例子,我关电脑,开电脑,不需要让cpu开启,让硬盘开启,让显示器开启,关电脑的时候也是同样的。我就知道开和关就可以了。这样,我这个子系统和电脑这个子系统的关系就很简单了。外观类public class Facade { Cpu MyCpu = new Cpu(); Ssd MySsd = n
2018-01-08 18:19:25 136
原创 装饰模式
这个模式我理解了好一会儿,可能是我比较笨,我是照着别人代码敲了一遍才理解的。这是被装饰者public abstract class Humburger { protected String name; public String getName() { return name; } public abstract double getPr
2018-01-07 20:39:26 172
原创 单例模式
单例模式 单例模式,就是只能生成一个例子。单例类只能有一个实例。他给其他对象提供的例子只能是这个实例。单例模式有两种懒汉式饿汉式public class Singleton { private Singleton() { } private static Singleton sing = null; Singleton getS
2018-01-07 19:11:43 136
原创 外观模式
外观模式,这个模式主要是用来解耦的。他主要是降低两个子系统之间的关系。举个例子,我关电脑,开电脑,不需要让cpu开启,让硬盘开启,让显示器开启,关电脑的时候也是同样的。我就知道开和关就可以了。这样,我这个子系统和电脑这个子系统的关系就很简单了。外观类public class Facade { Cpu MyCpu = new Cpu(); Ssd MySsd = new
2018-01-07 14:49:02 163
原创 策略模式
策略模式,首先,策略模式是定义一组算法,让他们之间可以互相替换。 比如商场打折,有打五折,打八折,还有满300减50那种。策略是可以替换的。 是不是和工厂方法很类似。但是其实是有区别的。 比如,买车的时候,一个不懂车的人说,在哪里一比划,销售人员就让工厂生产什么车,这是工厂方法。如果一个行家来,说排气量什么什么,两厢车什么什么,发动机什么 什么,这就是策略模式。具体步骤 要
2018-01-07 14:10:49 135
原创 抽象工厂
上一篇说了工厂方法,还有一个抽象工厂,工厂方法中的抽象工厂只有一个产品族,那么如果有两个或者两个以上的产品族的话,那该怎么办捏?很简答,就是在抽象工厂中,多写一个抽象方法,就是抽象工厂了。 举个例子,计算器,输入两个数,选择运算符号,得出两个答案,一个是整数答案,一个是浮点数答案。public interface IFactory { Operation CreateOper
2018-01-07 12:26:49 134
原创 工厂模式
之前写的那个简单工厂模式,虽然解决了修改时避免修改其他业务逻辑的问题,并且将对象的创建工作和客户端进行了剥离。,但是违反了开放封闭原则这个有这样的一个问题,就是每次增加逻辑的时候,就需要修改工厂类,就很挫,最好是能让他拓展一下。符合开放封闭原则。我们可以让工厂类成为一个接口,然后具体生成什么子类,在客户端中实现。 工厂类public interface IFactory {
2018-01-07 11:30:02 153
原创 简单工厂模式
这是第一发,我要立志记录一下我23种设计模式的学习记录,突然感觉如果写一个博客的话,那么我会记录的很清楚。简单工厂原则的实质在于修改原来代码的时候不去修改其他方法的逻辑。 比如,我们写一个计算器,如果有一开始有一个加减乘除功能,现在需要一个开更号的功能,该怎么办?如果按照没有学过设计模式的情况下,我们需要增加一个方法,在这个时候,因为这个方法是和原来的方法在一个类里面,所以我们修
2018-01-06 16:06:16 133
原创 deepin安装jdk
在deepin上安装java是真的心累啊,照着网上的教程弄,结果一团糟。主要是网上都是代码,有一些根据文件名和一些其他的东西要变化,但是作者没有写,所以导致一团糟。我来写个好一点的。首先,用sudo 类似命令下载的jdk,是open的jdk,是开源的,但是我们上学用的jdk都是Oracle的。所以我们需要在官方网站下一个。 下载地址 上面有各种版本的,然后因为我是64位机,所以下linux x6
2018-01-02 22:23:57 2148
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人