Zer0e's Blog

Zer0e's Blog

Facing the ideal and the reality.

设计模式之解释器模式
前言接下来讲讲解释器模式。 正文概念解释器模式属于行为型模式。它实现了一个表达式的接口,用于解释上下文。比如正则表达式解析,SQL解析等等。这种模式应用上较少,那在框架上用的还是比较多的,比如上文提到了正则表达式,还有XML解析,SQL解析等等都有着应用。 实现那我们就用一个简单的例子来实现这个模式。先来讲讲解释器模式中的几个角...
设计模式之责任链模式
前言本文来谈谈责任链模式。 正文概念责任链模式属于行为型模式。正如名字所说一样,对象是一个链式的结构,当请求到达对象时,如果第一个对象不能处理这个请求,则将请求传递给下一个对象,以此类推。责任链可以是直线型,也可以是环形,又或者是树形。那这种设计模式简化了请求传递的复杂度,请求只要传递给责任链上,并且无需关心如何处理请求,所以责任链...
设计模式之桥接模式
前言桥接模式其实是很少在项目中使用的设计模式,难度可以说是很大的。但是理解桥接模式能更深入的理解面向对象编程。那这篇就来讲讲这个模式。 正文概念我们先来看看维基百科上的定义: 桥接模式是软件设计模式中最复杂的模式之一,它把事物对象和其具体行为、具体特征分离开来,使它们可以各自独立的变化。 听起来就很复杂,而且竟然说是...
设计模式之原型模式
前言这篇来讲讲原型模式。 正文概念原型模式属于创建型模式,通常被用来创建重复的对象,通过原型来克隆对象,来获取相同的对象。一般来说是创建对象的代价比较大时,比如对象的属性,设置较多,不方便重新创建,而是从原有对象进行拷贝。这个模式实现的关键就是clone方法。原型模式在实际项目中很少单独出现,通常是与工厂模式一起出现,由clone方...
由lambda表达式引发的思考
前言lambda表达式不能说常用吧,但偶尔还是需要用到的。关于lambda表达式,是我学python的时候接触到的概念,仔细想想也有两年了。前段时间的面试有提到java中的lambda表达式,当时自己的回答还是比较笼统的,比如作为类似语法糖的存在,通常在比较器里面写,可以免写匿名类等等。我个人感觉回答的不是很好,那这篇文章就来讲讲我...
设计模式之迭代器模式
前言本篇来讲讲迭代器模式。 正文概念迭代器模式属于行为型模式,这种模式用于顺序访问集合对象中的元素,但是没有暴露内部的表示。例如java中的iterator。一般来讲迭代器模式中有以下几个角色: 迭代器(Iterator):抽象接口,一般来说有几个方法,next()取得下一个元素,hasNext()判断是否有下一个元素,remov...
设计模式之策略模式
前言几天没写文章,今天来讲讲策略模式。 正文概念策略模式,属于行为型模式。它是把算法封装到类中,让这些算法可以相互替换,并且不影响到客户端,简单来说,就是把算法进行封装,客户端可以通过条件不同来选择不同的策略。常见的实例有: 客户端需要选择几种算法中的一种,例如某些工具类的封装 选择不同实现的方式,例如实现出行可以步行可以公交等等...
设计模式之适配器模式
前言好久没写这个系列,趁着休息时间今天来讲讲适配器模式。 正文概念适配器模式属于结构型模式,这种设计模式解决的问题是原本由于接口不兼容而不能工作的类可以在一起工作。适配器模式与装饰模式很像,是定义一个包装类,来包装我们所需要适配的类,改变它的接口。但和装饰模式不同的是,包装类不改变原有类的功能,只是改变它的接口。那运用的场景有: ...
谈一道数据库更新的并发问题
前言今天进行了第一次面试,还是比较紧张的,面试官比较严肃,感觉面试官就是抓着一个点不断的问,问到你不会,这次面试算是很失败了,不仅前面的问题很多都不清楚,而且最后的coding题都没写完成,明明知道怎么写,缺敲不动键盘,但是也知道了自己的不足,主要是数据库方面,然后还有代码方面需要加强一下。再努力吧。那文章还是得继续写,今天聊聊面试...
设计模式之装饰器模式
前言继续讲讲装饰器模式。 正文概念装饰器模式就是向一个现有对象添加新的功能,又不改变原对象的结构。它属于结构型模式,因为是对现有类进行包装,所以称作装饰器模式。这么一说,装饰器模式与代理模式有点类似?都可以拓展一个类的功能,又不改变原对象。他们之间的差别之后会说。那这个模式具体的使用场景就是扩展类的功能,并且可以动态修改。 实现...
avatar
Zer0e
耿直的现实主义者 / 喜爱安全的web狗 / 无情的bug制造机器