
设计模式
苏察哈尔丶灿
我自横刀向天笑,笑完我就去睡觉。
展开
-
策略模式的思路整理
在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。例如,植物大战僵尸中不同的僵尸有不同的属性,如下表:类型外观移动攻击普通僵尸普通朝一个方向移动咬旗手僵尸普通 + 手持旗子朝一个方向移动咬舞王僵尸衣着华丽太空步召唤术它们之间有相同的属性,也有各自独立的功能实现,每种功能之间也并无依赖关系,互相独立。设计代码如下:定义移动接口类package strategy;原创 2020-08-08 10:55:32 · 284 阅读 · 0 评论 -
装饰器模式的思路整理
在不改变原有对象的基础上,将新功能附加到原对象上,例如生活中在拍照的基础上添加美颜,此功能就相当于一个装饰作用。定义抽象接口做统一调用标准package decorator;/** * @Auther: 苏察哈尔丶灿 * @Date: 2020/8/8 09:11 * @Slogan: 我自横刀向天笑,笑完我就去睡觉。 */public interface IComponent { void operation();}定义相机类package decorator;/原创 2020-08-08 09:24:31 · 119 阅读 · 0 评论 -
适配器模式的思路整理
家用220v的电压经过手机充电器的适配可以转化为手机需要的5v电压,就是一个最好的适配器的例子。适配器要实现的功能接口package adapter;/** * @Auther: 苏察哈尔丶灿 * @Date: 2020/8/7 16:41 * @Slogan: 我自横刀向天笑,笑完我就去睡觉。 */public interface ITarget { void output5v();}家用电压类package adapter;/** * @Auther: 苏察哈原创 2020-08-07 16:51:43 · 174 阅读 · 0 评论 -
门面模式的思路整理
提供一致的对外访问接口,内部自己实现具体逻辑的调用子接口一:package facade;/** * @Auther: 苏察哈尔丶灿 * @Date: 2020/8/7 16:09 * @Slogan: 我自横刀向天笑,笑完我就去睡觉。 */public class Client1 { public void method1(){ System.out.println("Client1 method1 doSomething...."); }}子接口原创 2020-08-07 16:26:03 · 220 阅读 · 0 评论 -
享元模式的思路整理
目的是为了节省不必要的重复开销。尽可能减少相似类的重复创建,可以想象有一个地图,里面有很多树,但是种类就那么几种,所以不需要创建太多的树对象,这种情况并不适合用单例,可以采用享元模式。树节点对象:package flyweight;/** * @Auther: 苏察哈尔丶灿 * @Date: 2020/8/7 15:40 * @Slogan: 我自横刀向天笑,笑完我就去睡觉。 */public class Tree { public final String name;原创 2020-08-07 15:56:34 · 137 阅读 · 0 评论 -
建造者模式的思路整理
定义需要创建的实体类package builder;/** * @Auther: 苏察哈尔丶灿 * @Date: 2020/8/7 11:29 * @Slogan: 我自横刀向天笑,笑完我就去睡觉。 */public class Product { private String param1; private String param2; private String param3; private String param4; private Str原创 2020-08-07 14:35:27 · 202 阅读 · 0 评论 -
单例设计模式的思路整理
单例的不同实现方式饿汉式懒汉式静态内部类饿汉式package singleton;/** * 饿汉式 线程安全 * 利用类加载机制,无需多余处理 * * @Auther: 苏察哈尔丶灿 * @Date: 2020/8/6 17:03 * @Slogan: 我自横刀向天笑,笑完我就去睡觉。 */public class HungrySingleton { private static HungrySingleton instance = new HungrySingleton(原创 2020-08-06 17:46:50 · 188 阅读 · 0 评论 -
单例、懒汉模式的思路整理
采用双检锁/双重校验锁(DCL,即 double-checked locking)package single;/** * 懒汉模式的单例 * * @author 苏察哈尔丶灿 */public class SingleCase { // 类的唯一实例 private static SingleCase instance = null; // 构造方法私有化,阻止外部生成对象 private SingleCase() { } /** * 第一种做法 *原创 2020-08-03 09:59:01 · 157 阅读 · 0 评论