摘要:
java的final是一个非常灵活的存在,它可以在三个地方使用:类、变量、方法。 类: final用在类上面的话相当于C#中的sealed的用法。就是避免其他类的继承。 变量: 当final用在变量上面的时候相当于C#的const修饰符,就是说,当final修饰的是一个值类型的话,这个值类型的值就不 阅读全文
摘要:
陆陆续续的看了两个礼拜的前端知识,把vue+vue-router+axios的知识撸了一遍,本来想加个element-ui来实现一下前后端分离,实施的时候却遇到了很多的坑。我本身不在一个软件开发公司上班,公司又有开发应用的需求。以前公司有钱的时候都是外包出去的,现在经济不景气,向我这种的“免费午餐” 阅读全文
摘要:
状态模式 状态模式将合适的Context(上下文)模拟成一个状态机,在这个状态机的内部,由Context来决定整个状态机的状态,再根据不同的状态执行不同的方法。在C#编译器的帮助下,很多语法糖的背后都是一个状态机的实现,比如在一个返回IEnumerale或者IEnumeartor的方法中使用yiel 阅读全文
摘要:
模板方法 模板方法是一个方法,定义了算法的步骤,并允许子类为一个或多个步骤提供实现。 本例中用冲泡咖啡和茶的例子来说明: 上图说明了冲泡咖啡和茶的步骤,可以看出冲泡咖啡和茶的步骤差不多,很相似,先来看看没有应用模板方法的代码: Tea的代码类似,就不放了。他们的一个不好的地方在于算法散落在了各个类中 阅读全文
摘要:
外观模式 外观模式和适配器模式一样,都实现了接口改变,适配器模式是让一个接口转化成另外一个接口,而外观模式是让接口变得更简单。 先来看一下需求: 外观模式没有封装子系统的类,外观只是提供一个统一的接口,对子系统的类进行调度。如果有必要,还是可以直接操作子系统的类,而不是通过外观。外观让子系统的类使用 阅读全文
摘要:
适配器模式 使用适配器模式的一个重要的点是首先要识别出什么代码(接口)是已经存在的,什么代码(接口)是新的,需要去适配的。适配器的作用是让旧的(现有的)接口能够匹配新的系统(要去适配的)。 比如有下面两个接口,一个是系统已经有的: public interface IDuck { void Quac 阅读全文
摘要:
首先需要说明的是该系列的所有内容都是基于headfirst设计模式来描述的。因为我之前也看过不少关于设计模式的书,还是发现这本最好,因为这本书里面给出的例子是最贴切实际的。不说了,开始这个系列吧! 策略模式 设计原则①:找出应用中可能需要变化的地方,把他们独立出来,不要和那些不变的代码混合在一起。把 阅读全文
摘要:
首先,阐明一下标题的这个“深入分析”起得很惭愧,但是又不知道该起什么名字,这个系列也主要是做一些复习的笔记,供自己以后查阅,如果能够帮助到别人,那自然是再好不过了。 然后,我想说的是异步方法的状态机真的是太复杂了。我写完这篇都还迷迷糊糊的,所以,读者就不要往下看了。这里面还涉及大量的核心类型没有搞清 阅读全文
摘要:
异步编程的基础知识 C#5推出的async和await关键字使异步编程从表面上来说变得简单了许多,我们只需要了解不多的知识就可以编写出有效的异步代码。 在介绍async和await之前,先介绍一些基础的概念: 并发:同时做很多事情。 这个解释直接表明了并发的作用。终端用户程序利用并发功能,在输入数据 阅读全文
摘要:
理解ORM的前提:数据库中的范式和约束 一.数据库中的范式: 范式, 英文名称是 Normal Form,它是英国人 E.F.Codd(关系数据库的老祖宗)在上个世纪70年代提出关系数据库模型后总结出来的,范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则和指导方法,以下就是对 阅读全文