代码改变世界

结构模式 - 2 代理模式

2018-05-16 01:01 by 乱月灵猫, 174 阅读, 0 推荐, 收藏, 编辑
摘要:概述: 假设一种场景,某个对象消耗太多资源,但我们的代码中并不是每个逻辑路径(if、else就是两条不同的逻辑路径)都需要这个对象,那么延迟加载可能是我们解决这个问题的一种方案。再假设一种场景,如果我们想限制访问某个对象,比如,提供一组方法给普通用户,提供另一组特别的方法给管理员用户。以上两个场景都 阅读全文

结构模式 - 1 享元模式

2018-05-16 00:59 by 乱月灵猫, 150 阅读, 0 推荐, 收藏, 编辑
摘要:享元模式 顾名思义:共享元对象。如果在一个系统中存在多个相同的对象,那么只需要共享一份对象的拷贝,而不必 为每一次使用创建新的对象。 顾名思义:共享元对象。如果在一个系统中存在多个相同的对象,那么只需要共享一份对象的拷贝,而不必 为每一次使用创建新的对象。 享元模式是为数不多的、只为提升系统性能而生 阅读全文

创建模式 - 4 建造者模式

2018-05-16 00:55 by 乱月灵猫, 177 阅读, 0 推荐, 收藏, 编辑
摘要:建造者模式:是将一个复杂的对象的构建与它的表示(实体)分离,使得同样的构建过程可以创建不同的表示。 写在前面: builder 模式可以分为两种实现,一种是用静态内部类实现,不需要 director 类;另一种是需要 director 类。网上的介绍往往都是带有 director 的,但实际使用时, 阅读全文

创建模式 - 3 工厂模式

2018-05-16 00:47 by 乱月灵猫, 171 阅读, 0 推荐, 收藏, 编辑
摘要:工厂模式包括: (1)静态工厂模式:产品实体类继承自一个接口,工厂是实体类,通过入参决定具体产品的创建。 (2)工厂方法模式:产品实体类继承自一个接口,工厂实体类继承自一个接口,具体的工厂实体类对应具体的产品实体类。 (3)抽象工厂模式:多个产品族对应多个产品接口,每个产品接口有具体的实现类产品,工 阅读全文

创建模式 - 2 原型模式

2018-05-16 00:39 by 乱月灵猫, 113 阅读, 0 推荐, 收藏, 编辑
摘要:在开发过程中,有时会遇到为一个类创建多个实例的情况,这些实例内部成员往往完全相同或有细微的差异,而且实例的创建开销比较大或者需要输入较多参数,如果能通过复制一个已创建的对象实例来重复创建多个相同的对象,这就可以大大减少创建对象的开销,这个时候就需要原型模式。 原型模式简单来说,就是使需要具有拷贝功能 阅读全文

创建模式 - 1 单例模式

2018-05-16 00:17 by 乱月灵猫, 134 阅读, 0 推荐, 收藏, 编辑
摘要:参考:http://bijian1013.iteye.com/blog/2289939 写在前面: 单例的实现方式有多种,不管采取何种方案,需时刻牢记单例的三大要点: a. 线程安全 b. 延迟加载 c. 序列化与反序列化安全 a. 线程安全 b. 延迟加载 c. 序列化与反序列化安全 1. 饿汉法 阅读全文

1 - 单例、工具类、service的区别

2018-05-16 00:00 by 乱月灵猫, 1622 阅读, 0 推荐, 收藏, 编辑
摘要:最近在写代码时想了这样一个问题,和室友讨论了一番,做了如下总结。 简单来说:service是有状态的,工具类是无状态的,单例可以有状态也可以无状态。 工具类提供静态方法,只要输入一定,输出就是一定的,它不依赖于其它外部的数据,也不保存数据 例如,字符串的操作,日期格式的转换,json串的转换 Ser 阅读全文

0 - 设计模式六大原则

2018-05-15 23:56 by 乱月灵猫, 162 阅读, 0 推荐, 收藏, 编辑
摘要:参考:http://www.uml.org.cn/sjms/201211023.asp#2 (1)单一职责原则(Single Responsibility Principle) 定义: 一个类/接口只负责一项职责 描述: 当一个职责变更需要修改类的时候,应该避免影响到其它职责的功能,因此要遵从单一职 阅读全文