摘要: 观察者模式, 就像一群人在玩大家来找茬一样, 一幅一幅的玩. 这种玩的方式, 是类似于推拉模式中的推模式的. 推送给玩家的是, 两幅图片, 相同的部分和不同的部分都推送给你, 但是, 作为玩家来说, 其实更想要的, 只是不同的部分. 下面以一个简单的示意性实现为例,讨论观察者模式的结构。 观察者模式 阅读全文
posted @ 2016-12-07 09:50 Sniper_ZL 阅读(352) 评论(0) 推荐(1) 编辑
摘要: 单例模式, 顾名思义, 就是共用同一个实体对象. 对于共用, 首先想到的就是static静态变量, 那么怎么使用static去实现单例呢. 一、单线程单例模式 由于这个模式的实现还是比较简单的, 所以直接上代码.(不推荐使用此方式) 私有化构造函数之后, 外部就不能通过new A()的方式来实例化A 阅读全文
posted @ 2016-12-05 16:04 Sniper_ZL 阅读(478) 评论(0) 推荐(0) 编辑
摘要: 一、抽象工厂模式 在工厂方法中, 所创建的汽车都是没有品牌的汽车. 现在假设, 车子有品牌了, 并且不止只有汽车, 还有自行车的生产. 那么可以把汽车和自行车做成两个抽象产品, 代码如下: 为什么要把产品做成抽象的呢, 因为虽然各品牌的产品大体相同, 但是其中很多细节还是不一样的. 所以就产生了两种 阅读全文
posted @ 2016-11-29 14:49 Sniper_ZL 阅读(410) 评论(0) 推荐(0) 编辑
摘要: 上一篇, 介绍了简单工厂模式, 在最后提出了一个问题, 如果我的程序需要扩展, 加一种产品进去, 显然, 简单工厂是不能胜任此项工作的, 那么需要另请高明 - 工厂方法模式. 当然, 抽象工厂, 也是可以加产品的, 动态添加程序集, 然后反射的方式就可以创建出我们新加的对象. 不过此处, 主要还是介 阅读全文
posted @ 2016-11-28 15:34 Sniper_ZL 阅读(332) 评论(0) 推荐(0) 编辑
摘要: 前言: "软件模式的伟大之处, 就在于他们传达了许多有用的设计思想. 所以, 在学习了大量模式之后, 就理应成为非常优秀的软件设计人员, 不是吗? 当学习、使用了几十个设计模式之后, 我也曾这样认为. 模式帮助我开发灵活的框架, 帮助我构建坚固、可扩展的软件系统. 但是几年之后, 我却发现自己在模式 阅读全文
posted @ 2016-11-28 14:01 Sniper_ZL 阅读(395) 评论(0) 推荐(0) 编辑
摘要: 之前介绍了Dapper的查询, 存储过程, 函数的调用, 接下来要说一下Dapper的增删改, 其实Dapper的增删改, 都是同一种模式的. 我就不分开介绍了, 直接在一个例子上展现好了. 都是可以使用参数化的方式, 更加简便清晰, 不需要去管太多. 有些ORM中, 参数不是这么写的, 而是 "@ 阅读全文
posted @ 2016-11-15 17:16 Sniper_ZL 阅读(1188) 评论(3) 推荐(0) 编辑
摘要: 上一篇貌似少介绍了自定义函数和存储过程, 因为这两个也可以使用查询的方式来实现功能, 这一篇就补上 一、自定义函数的创建和调用 (mysql的) 注意在mysql中, delimiter $$ 这个的使用, 起一个分割功能, 有些编译器中, 如果不写这个, 是不会把这些当做方法,存储过程去处理的, 阅读全文
posted @ 2016-11-11 11:33 Sniper_ZL 阅读(14713) 评论(0) 推荐(4) 编辑
摘要: 上一篇, 提到Query<Test>查询的时候, 如果Test中包含自定义class, Dapper不会给自定义class完成映射, 而是直接给null, 其实是可以实现的, 答案就在下面的基本用法介绍中 提到用法, 首先是要实现CURD, 这里先介绍Read吧. 先上实体: 一、一对一映射 一对一 阅读全文
posted @ 2016-11-10 13:14 Sniper_ZL 阅读(16872) 评论(3) 推荐(1) 编辑
摘要: 承接着上一篇, 这一篇主要以堆栈的方式来演示一下, db数据转换到类中去的一个过程. 一、先看第一张图 程序在运行到176行(上一篇贴出的代码)的时候, 就会出现上图中的第一个栈. 那在此之前, Dapper又做了些什么呢? 抛开Dapper的这种OpCodes的实现方式来说, 我们自己用代码去转换 阅读全文
posted @ 2016-11-09 16:44 Sniper_ZL 阅读(2048) 评论(0) 推荐(1) 编辑
摘要: 感觉好久没有写博客了, 这几天有点小忙, 接下来会更忙, 索性就先写一篇吧. 后面估计会有更长的一段时间不会更新博客了. 废话不多说, 先上菜. 一、示例 1. 先建类, 类的名称与读取的表名并没有什么关系,可以不一样, 然后就是其中的属性大小写不限 2. 测试代码 接下来, 可以进入Dapper的 阅读全文
posted @ 2016-11-08 17:11 Sniper_ZL 阅读(7443) 评论(0) 推荐(1) 编辑