工程能力
文章平均质量分 68
SpringRivers
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java设计模式——三种代理模式(静态代理、动态代理、CGLIB代理)
什么是代理模式 代理模式为另一个对象提供一个替身或占位符以控制对这个对象的访问。 代理模式可以在不改变源码的情况下,实现对目标对象的扩展。 Java的三种代理模式 1、静态代理 创建服务类接口和实现服务类接口 public interface Singer { void sing(); } public class MaleSinger implements Singer { ...原创 2019-12-03 13:58:38 · 266 阅读 · 0 评论 -
Java设计模式——策略模式
什么是策略模式策略模式定义了算法族,分别封装起来,让她们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。策略模式举例策略模式,是用类实现算法,以组合的形式组织到主题上。比如我们有一个抽象主题,具有一个方法A。如下:public interface AbstractMainObject { void actionA(); }考虑到方法A的实现可能有多种,这样我们可以通过用一个额外的类实原创 2017-12-06 10:25:54 · 363 阅读 · 0 评论 -
Java设计模式——观察者模式
什么是观察者模式在对象之间定义一对多的依赖关系,这样一来,当一个对象改变状态,依赖它的对象都会收到通知,并自动更新。举例说明比如有一个天气的数据源,和需要获取天气数据的观察者。比如天气数据不定时更新。而观察者也是随时订阅和取消订阅天气数据源。在订阅时,希望每次更新都可以获取信息。 天气数据源作为被观察的主题,需要对外提供订阅、取消订阅、发布天气数据给订阅者功能。此外还有一个更新自己的天气数据的功能原创 2017-12-07 10:24:49 · 313 阅读 · 0 评论 -
Java设计模式——单例模式
什么是单例模式单例模式:确保一个类只有一个实例,并提供一个全局访问点。 有一些对象我们只需要一个,比如:线程池、缓存等。单例模式就是用于解决如何正确,低成本的创建和获取类的唯一对象问题的设计方法。最经典的两种单例模式实现方法1,双重检查法public class Singleton { private volatile static Singleton singleton; pri原创 2017-12-03 17:50:15 · 261 阅读 · 0 评论 -
Java设计模式——工厂模式
什么是工厂模式工厂模式:简单的工厂模式,就是把对象的创建提出来单独处理。而标准的工厂模式,定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。 抽象工厂模式:提供一个接口,用于创建相关或依赖对象的家族,而不需要明确确定具体类。工厂方法简单的工厂方法,常用于组织创建同一类对象的不同子类。 例如,抽象类Pizza有很多种具体的实现子类,将创建一个Pizza对象原创 2017-12-03 21:28:00 · 302 阅读 · 0 评论 -
Java设计模式——命令模式、模板方法、迭代器和组合模式
什么是命令模式 将『请求』封装成对象,以便使用不同的请求、队列或者日志来参数化其它对象。命令模式也支持撤销。 命令模式举例说明 领命模式将所有的操作抽象出来一个执行接口如下 public interface Command { void execute(); void undo(); } 然后我们有一个灯来,并用它实现这个接口 class Light {原创 2017-12-10 20:42:13 · 337 阅读 · 0 评论 -
设计模式、设计原则、反模式
什么是设计模式 模式是在某种情境下,针对某种问题的某种解决方案。 设计模式算是一种经验复用。 模式分类 1,创建型:涉及到将对象实例化。 如:单例模式,工厂模式 2,结构型:把类或对象组合到更大的结构中。 如:装饰器,代理模式,适配器模式 3,行为型:涉及到类和对象如何交互及分配职责。 模板方法,观察者模式,策略模式 设计原则 1,封装变化。找出应用中可能需要变化之处原创 2017-12-05 09:58:09 · 2740 阅读 · 0 评论 -
Java设计模式——装饰器模式、适配器模式、外观模式
什么是装饰器模式装饰器模式,动态的将责任附加到对象上,若要扩展功能,装饰器提供了比继承更有弹性的替代方案。举例说明我们定义一种饮料,它有描述信息,还有价格,如下public abstract class Drink { String desc = "nothing"; public String getDesc() { return desc; } publ原创 2017-12-07 21:31:52 · 1683 阅读 · 0 评论
分享