【OOD】
文章平均质量分 77
后端沉思录
不断学习的小学生。
展开
-
设计模式之单例模式(Singleton)
单例模式是一种常用的设计模式,可以保证对象在JVM中只有一个实例存在,这样做的好处可以不用重复的创建类对象,节省一笔很大的开销,而且可以减轻GC压力。常见的创建模式有懒汉模式和饿汉模式。但是如果考虑到不同场景,设计有很大差别。懒汉模式:(类加载时,不立即创建实例,所以加载类速度快,但是获取实例较慢)public class SingIeton { /* * 持有私有静态实原创 2016-11-03 21:59:20 · 498 阅读 · 0 评论 -
适配器模式
在设计模式中,适配器模式(英语:adapter pattern)有时候也称包装样式或者包装(wrapper)。将一个类的接口转接成用户所期待的。一个适配使得因接口不兼容而不能在一起工作的类能在一起工作,做法是将类自己的接口包裹在一个已存在的类中。–维基百科适配器模式包含如下角色:Target(目标抽象类)Adapter(适配器类)Adaptee(适配者类)Client(客户类)适配...原创 2019-03-15 00:01:03 · 320 阅读 · 0 评论 -
装饰者模式
修饰模式(装饰者模式),是面向对象编程领域中,一种动态地往一个类中添加新的行为的设计模式。就功能而言,修饰模式相比生成子类更为灵活,这样可以给某个对象而不是整个类添加一些功能。–维基百科装饰者UML类图(摘自维基百科):Component(基类)它是被装饰者和抽象装饰类的共同父类,声明了在具体构件中实现的业务方法,它的引入可以使客户端以一致的方式处理未被装饰的对象以及装饰之后的对象,实现...原创 2019-03-14 01:27:08 · 277 阅读 · 0 评论 -
策略模式
策略模式作为一种软件设计模式,指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法。比如每个人都要“交个人所得税”,但是“在美国交个人所得税”和“在中国交个人所得税”就有不同的算税方法。–维基百科在项目中时常会用到策略模式的场景,比如业务中需要支付,但是有多个支付渠道,那如何对上层业务暴露"统一口径"(接口)呢,下面结合代码说明,首先定义支付接口:public interface P...原创 2019-03-03 23:48:58 · 281 阅读 · 0 评论 -
模版方法模式
定义模板方法模式定义了一个算法的步骤,并允许子类别为一个或多个步骤提供其实践方式。让子类别在不改变算法架构的情况下,重新定义算法中的某些步骤.在软件工程中,它是一种软件设计模式,和C++模板没有关连.–维基百科案例首先看一个最常见的模版方法,Spring中的org.springframework.context.support.AbstractApplicationContext#refre...原创 2019-03-04 23:35:19 · 198 阅读 · 0 评论 -
回调函数
回调函数就是一个通过函数指针调用的函数。如果你 把函数的指针(地址)作为参数传递给另一个函数,当这个 指针被用来调用其所指向的函数时,我们就说这是回调函数 。回调函数不是由该函数的实现方直接调用,而是在特定的 事件或条件发生时由另外的一方调用的,用于对该事件或条 件进行响应 –摘自百度百科– 什么是回调函数,上面的问题说的是不是很空洞,不是太形象,下...原创 2018-06-23 02:02:02 · 712 阅读 · 0 评论 -
观察者模式(Observer)
观察者模式属于行为型模式,所谓观察模式,观察者订阅了某种服务,那么该服务有变化会通知观察者。简单的类图:public interface EventObserver { public void speek();}public interface EventSubject { public void registerOberver(EventObserver ob原创 2017-01-11 17:45:42 · 541 阅读 · 0 评论 -
抽象工厂模式(Abstract Factory)
在工厂类模式中,如果需要新的类时,需要修改工厂类,这样显然不利于扩展。在抽象工厂模式中,需要扩展一个类时,不需要修改之前的代码就可以实现。/** * Created by Administrator on 2016/11/18. */public interface Worker { public void work();}public interface Provider原创 2016-11-18 10:38:59 · 934 阅读 · 0 评论 -
原型模式(Prototype)
原型模式顾名思义,以一个对象为原型,进行克隆,复制操作,产生一个和原型相似的对象。下面用的例子是以java中浅拷贝和深拷贝为例。浅拷贝:被克隆对象的所有变量都与原来对象有相同的值,而所有的对其他对象的引用仍然指向原来的对象。上面说的很抽象,下面通过图简单的描述:(图以示例代码对应,man对象在person类中被引用)深拷贝:被克隆对象的所有变量都与原来的对象有相同的值,除去那些原创 2016-11-21 14:40:57 · 1079 阅读 · 0 评论 -
工厂方法模式(Factory Method)
工厂模式属于创建型模式,如果需要大量的创建实现同一个接口或者类的对象时,可以使用。/** * Created by Administrator on 2016/11/18. */public interface Worker { public void work();}/** * Created by Administrator on 2016/11/18. */pu原创 2016-11-18 09:53:43 · 1033 阅读 · 0 评论 -
设计模式之建造者模式(Builder)
在文章之前,简单介绍下设计模式中的分类:总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释...原创 2016-11-03 17:07:10 · 674 阅读 · 0 评论 -
观察者模式
观察者模式观察者模式是软件设计模式的一种。在此种模式中,一个目标对象管理所有相依于它的观察者对象,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实时事件处理系统。–维基百科生活中,顾客(Customer)去商店购买电器,但是由于缺货,顾客留下手机号码,告知店主(Manager)有货时及时通知;即顾客(观察者)订阅了店主(被订阅者)的到货的服务,...原创 2019-03-12 16:29:43 · 383 阅读 · 1 评论