
设计模式
yaonga
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
结构型模式-适配器模式
1.适配器模式 把一个类的接口变换成客户端所期待的另一种接口,使得原本因接口不匹配而无法在一起工作的两个类可以一起工作 2.示例 //目标接口 public interface ObjectTarget { public void method(); } //源接口,被适配的接口 public interface ObjectAdaptee { public void metho...原创 2019-07-29 10:03:32 · 158 阅读 · 0 评论 -
行为型模式-策略模式
1.策略模式 将每一个算法封装到具有共同接口的独立类中,客户端自行决定使用 哪一个策略。 2.示例 public interface Strategy { public void calculate(); } public class StrategyA implements Strategy { @Override public void calculate() ...原创 2019-08-01 10:28:46 · 132 阅读 · 0 评论 -
行为型模式-模板模式
1.模板模式 /** * 模板设计模式 * * 抽取一个抽象模板类,同时定义模板方法 对于模板方法的实现,在子类中去实现 * * */ public abstract class GetTimeTemplate { // 固定流程方法 public long getTime() { // 获取起始时间 long t1 = System.currentTimeMilli...原创 2019-07-31 14:03:42 · 127 阅读 · 0 评论 -
结构型模式-代理模式
1.代理模式 代理就是帮[目标对象]去完成它应该做,但是不想或者不擅长做的事情。 代理模式分为静态代理和动态代理 * 静态代理:就是编写一个代理类,去代理[目标对象],在程序运行之前静态代理的.class文件已经存在了,只能服务于指定接口而不能服务于其他接口 * 动态代理:在运行期间,通过反射,对[目标对象]产生一个[代理对象] 2.动态代理 动态代理的实现方式分为两种,下面两种方式生成的代理类都...原创 2019-07-31 10:26:03 · 142 阅读 · 0 评论 -
结构型模式-外观(门面)模式
1.外观模式 也叫门面角色,客户端可以调用这个角色的方法,此角色知晓子系统的所有功能和责任,将客户端的请求代理给适当的子系统对象;Subsystem是子系统角色,可以同时拥有一个或多个子系统,每一个子系统都不是一个单独的类,而是一个类的集合,子系统并不知道门面的存在。客户端不需要知道系统内部的复杂联系,整个系统只提供一个“接待员”即可。 2.示例 //外观类 public class Facade...原创 2019-07-30 16:04:54 · 121 阅读 · 0 评论 -
创建型模式-构建者模式
1.构建者模式 灵活地构建多个成员变量的复杂对象。 2.示例 public class Human { private String head; private String body; private String foot; public Human(Builder builder) { this.head = builder.head...原创 2019-07-25 11:57:37 · 141 阅读 · 0 评论 -
结构型模式-装饰器模式
1.装饰器模式 public interface Phone { void call(); } public class IPhone implements Phone { @Override public void call() { System.out.println("使用苹果手机打电话"); } } /** * 装饰模式 * * 1:装饰类,需要去实现被装饰...原创 2019-07-30 09:51:13 · 139 阅读 · 0 评论 -
创建型模式-单例模式
1.单例模式 示例 //单例特点:提供唯一实例,不能由别的对象来new,暴露提供实例的方法 //恶汉式,线程安全 public class EagerSingleton { //(虚拟机采用了CAS配上失败重试的方式保证更新更新操作的原子性和TLAB两种方式来解决线程安全问题) private static EagerSingleton instance = new EagerSi...原创 2019-07-24 16:19:59 · 120 阅读 · 0 评论 -
创建型模式-抽象工厂模式
1.抽象工厂模式 定义一个创建产品对象的工厂接口,将实际创建工厂推迟到子类中。 简单工厂if…else if…else放在工厂类中,势必造成工厂类无限庞大,抽象工厂模式中,核心工厂类不再负责对象的创建,而是将具体的创建工作交给子类。 2.示例 //抽象工厂,不负责具体的创建对象工作 public abstract class AbstractAnimalFactory { public a...原创 2019-07-24 15:46:18 · 120 阅读 · 0 评论 -
创建型模式-简单工厂模式
1.简单工厂模式 类的创建模式,又叫静态工厂模式,由一个工厂生产所需的某一类产品。 2.使用简单工厂的好处 为了解耦。 类A多次引用类B后,假如有一个类C和类B实现了同一接口,系统需要把B类修改成C类,程序不得不重写A类代码。 有一个办法就是写一个工厂IFactory,A与IFactory耦合,修改一下,让所有的类都实现C接口并且IFactory生产出C的实例就可以了。 3.示例 public i...原创 2019-07-24 14:51:28 · 107 阅读 · 0 评论 -
行为型模式-观察者模式
1.观察者模式 观察者模式也可以叫发布-订阅模式,是一种事件监听机制,多个观察者对象同时监听某一个主题对象,这个主题对象在状态上发生变化时,会通知所有观察者对象,使他们能够自动更新自己。 2.示例 /** * 抽象主题角色(被观察者/发布者) */ public abstract class Subject { private List<Observer> list = n...原创 2019-08-01 13:40:17 · 149 阅读 · 0 评论