摘要: 本文很多内容来自 链接 Napoléon本身已经写得很好了,但是出于对该内容学习的要求,自己还是重新做了一遍。 有一些新的东西,不过大多数都是他的,希望大家了解 1.引言 最近在找工作,然后就遇到了需要做前后端分离项目的公司,可惜因为自己没做过Web Api项目,因此没通过,今天就特地找文章来学习他 阅读全文
posted @ 2019-03-20 10:51 N伽莫夫J 阅读(710) 评论(0) 推荐(0) 编辑
摘要: 1.定义 对于集合类对象,遍历是很重要的一种操作,但是对于不同的集合,遍历的方法都不相同,如果有办法可以将所有集合类的遍历统一起来,那将会很方便。因此便诞生了迭代器模式。 迭代器模式的实现其实很简单,大家可以把“遍历集合的方式”当做迭代器,那也就是说,就算是同一个集合对象,如果我们的遍历方式不一样, 阅读全文
posted @ 2019-03-19 11:51 N伽莫夫J 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 1.定义 当想访问一堆子接口的时候,为了防止客户端和子接口的耦合,我们将子接口上层重新建立一个外观层,让外观层和客户端发生关系。 这样就避免了修改子接口的同时,再去修改客户端,因此外观模式有时候又被称作门面模式。 2.代码实现 本来是两个子接口LogDAL和UserDAL,因为要将接口和客户端隔离, 阅读全文
posted @ 2019-03-15 17:30 N伽莫夫J 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 1.定义 很多时候,我们的程序可能又许多状态(比如页面上的功能就有增删改查四种状态),每种状态要执行的操作可能不一样,一般情况下,我们会使用if判断状态,然后在代码块中执行适当的代码,但是一旦业务逻辑很复杂的时候,这样做就很难维护。 状态模式其实和策略模式很类似, 策略模式是将会经常改变的算法抽象出 阅读全文
posted @ 2019-03-15 10:52 N伽莫夫J 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 1.定义 将会经常改变的算法,封装在接口中,在算法更改时,只需要为接口添加新的实现,而不需要修改原有的算法。 2.代码实现 由一个计算接口,派生出4个运算类,分别是加减乘除,调用的时候; 当需要更换算法的时候只需要将接口的实现换成另一个算法类即可,如果使用IOC,还可以将实现放到配置文件中,起到动态 阅读全文
posted @ 2019-03-14 10:29 N伽莫夫J 阅读(294) 评论(0) 推荐(0) 编辑
摘要: 1.定义 观察者模式说白了就是事件;之前没有观察者模式的时候,当我们需要考察属性的状态然后作出相应的处理,我们只能当状态满足的时候去调用方法。 不过这样就造成了事件处理和事件绑定在了一起,一旦我们要添加其他的处理功能,就不得不修改原有的检测代码,对于修改并不友好。 2.观察者模式的发展 2.1 一个 阅读全文
posted @ 2019-03-13 15:12 N伽莫夫J 阅读(2669) 评论(4) 推荐(1) 编辑
摘要: 1.定义 就是抽象类的运用,将相似类中不变的内容和方法放入到父类中,进行重用。 2.例子 2.1 代码 这里的代码,其实是一个excel导入的功能,但是因为有些excel导入只是更新一张表,有些是要关联更新几张表,逻辑肯定不一样。 但是共同的部分是,都需要将excel文件中的内容转换成databas 阅读全文
posted @ 2019-03-13 12:25 N伽莫夫J 阅读(579) 评论(0) 推荐(0) 编辑
摘要: 1.定义 把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法一起工作的两个类能够在一起工作。 其实这个设计模式的名字,已经把他的功能说明的很清楚了,就是将不同接口的类,运用适配器,使得可以使用同一接口统一调用。 2.代码 2.1 类的适配器 使用继承的方式,使BirdAdapt 阅读全文
posted @ 2019-03-12 14:55 N伽莫夫J 阅读(625) 评论(0) 推荐(0) 编辑
摘要: 有时候,我们的执行类不愿意被客户端看到,又或者我们需要对访问执行类的客户端的权限进行验证,如果权限不够的话就不允许访问,这种需求就是明显的要使用代理模式 1.定义 代理模式——就是给某一个对象提供一个代理,并由代理对象控制对原对象的引用。在一些情况下,一个客户不想或者不能直接引用一个对象,而代理对象 阅读全文
posted @ 2019-03-12 11:01 N伽莫夫J 阅读(305) 评论(0) 推荐(0) 编辑
摘要: 序:一个面试题作为开场 假设你是在一家专门提供在线(web)图片处理服务的公司, 安排你去设计开发一个框架: 允许每次可以处理多张图片, 每张图片各自有各自的效果. 允许在不改动代码的情况下,添加或者移除插件(插件: 我们可以认为是某种具体的操作,比如PS中的滤镜等效果),你可以使用配置文件来配 阅读全文
posted @ 2019-03-12 10:08 N伽莫夫J 阅读(184) 评论(0) 推荐(0) 编辑