创建型模式共有五种:单例模式、建造者模式、工厂方法模式、抽象工厂模式、原型模式。
- 单例模式 :确保某一个类只有一个实例,并且提供一个全局访问点
- 建造者模式 :用来创建复杂的复合对象
- 工厂方法模式 :让子类来决定要创建哪个对象
- 抽象工厂模式 :创建多个产品族中的产品对象
- 原型模式 :通过复制原型来创建新对象
创建型模式共有五种:单例模式、建造者模式、工厂方法模式、抽象工厂模式、原型模式。
设计模式(Design pattern)是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。
Emmet是一个编辑器插件,以前被称作为 Zen Coding。使用类似于 CSS 选择器的语法描述元素在生成的文档树中的位置及其属性。
使用 Emmet 可以帮助程序员快速的编写 HTML 和 CSS 代码,从而提高 Web前端开发的效率。官网提供多编辑器支持。我一般使用Visual Studio Code,下面就以VS Code插件举例。
RSA 是常用的非对称加密算法。最近使用时却出现了提示“不正确的长度”,排查发现是由于待加密的数据超长所致。
.NET Framework 中提供的 RSA 算法规定:
待加密的字节数不能超过密钥的长度值除以 8 再减去 11(即:RSACryptoServiceProvider.KeySize / 8 - 11),而加密后得到密文的字节数,正好是密钥的长度值除以 8(即:RSACryptoServiceProvider.KeySize / 8)。
所以,如果要加密较长的数据,则可以采用分段加解密的方式,实现方式如下:
在数据安全上rsa起着非常大的作用,特别是数据网络通讯的安全上。当异构系统在数据网络通讯上对安全性有所要求时,rsa将作为其中的一种选择,此时rsa的互通性就显得尤为重要了。
本文参考网络资料,提供了rsa互通性的一种可行的解决方案(c#,java,php),而这种互通性是在一定的局限性上达成的,比如密钥是1024位的(更高位没试过,应该也可行),基于PKCS1填充方式。
所编写的代码有一部分使用了硬编码,同时注重了功能的实现,在类结构设计上关注不多,有需要的可自行修改重构。
提到分部视图,我相信大家会想到和web form时代的对应物ascx分部控件,我们在Mvc时代可以更加轻松的控制分部视图。
要说明分部视图,我们先来讨论一下分部视图可以带给我们的优点:
分部视图可以使系统插件化。我现在非常推崇一个原则,就是可以分离的东西绝对不要让他们在一起,因为只有每个功能模块都是单独的,我们才可以在其他位置重用它。
分部视图还可以带来一个优点,就是分工合作。现在是一个合作的时代,没有任何一个人可以单独完成规定的任务而不与别人合作,牛人例外。分部视图可以带给我们开发不同模块中的分工合作。
分部视图还有一个在Mvc时代的优点,就是实现简单。我自从学习使用Mvc以后,我基本上就很少写web form的代码了,因为我感觉没有Mvc写的那么流畅。html.partial(partialName)
就可以显示一个分部视图的页面。
很多不太懂正则的朋友,在遇到需要用正则校验数据时,往往是在网上去找很久,结果找来的还是不很符合要求。所以我最近把开发中常用的一些正则表达式整理了一下,在这里分享一下。给自己留个底,也给朋友们做个参考。
项目中由于需求设计,数据库中需要一个timestamp时间戳类型的字段来作为区别数据添加和修改的标识。由于在SQL SERVER 中,不可为空的timestamp类型在语义上等同于binary(8)类型,可为空的 timestamp类型在语义上等同于varbinary(8)类型,这将导致在C#程序中获取到的timestamp类型则变成了byte[]类型。所以如果我们需要从数据库中获取并使用这个时间戳的话就必需经过转换。
有时候我们想通过一个值知道这个值来自数据库的哪个表以及哪个字段,在网上搜了一下,找到一个比较好的方法,通过一个存储过程实现的。只需要传入一个想要查找的值,即可查询出这个值所在的表和字段名。
前提是要将这个存储过程放在所查询的数据库。