摘要:
定义:应该有且仅有一个原因引起类的变更。There should never be more than one reason for a class to change.优点:1、类的复杂性降低,实现什么职责都有清晰明确的定义;2、可读性提高,复杂性减低,可读性当然提高;3、可维护性提高,可读性提高,可维护性当然提高;4、变更引起的风险减低,变更是必不可少的,如果接口的单一职责做得好,一个接口修改... 阅读全文
摘要:
逻辑查询处理中的各个阶段SQL逻辑查询处理的步骤序号(8) SELECT (9) DISTINCT (11) <TOP_specification> <select_list>(1) FROM <left_table>(3) <join_type> JOIN <right_table>(2) ON <join_condition&g... 阅读全文
摘要:
微软的一个文章:设计模式:Model View Presenter 个人总结一下MVP模式 M既是模型比如我们的实体模型层。 V既是UI界面显比如控件,JS脚本等。 P既是连接V与M的桥梁。V层不直接引用M层的内容,P层负责连接M层与V层。V层将控件传给P层,P层通过引用填充数据,或者是获取数据。 总结起来就是:UI界面与逻辑代码的分离。逻辑代码与数据库操作的分离。逻辑代码的重用性,例如... 阅读全文
摘要:
何谓控制反转(IoC = Inversion of Control),何谓依赖注入(DI = Dependency Injection)?一直都半懂不懂,今天看到两个比喻,觉得比较形象。 IoC,用白话来讲,就是由容器控制程序之间的关系,而非传统实现中,由程序代码直接操控。这也就是所谓"控制反转"的概念所在:控制权由应用代码中转到了外部容器,控制权的转移,是所谓反转。 正在业界为IoC争吵不休时,... 阅读全文
摘要:
开发人员不太喜欢去弄脚本,原因很多,比如认为太简单,认为没有挑战性,认为资源比较丰富很容易通过网络就查询到自己想要的,因为没有很好的编译器,不能像程序一样很方便的进行调试。或者就是是些起来也会使用过程化程序设计的思路去做JavaScript开发。这样带来的后果就是程序很难维护。 通过以下几种方式,基本上就可以很好的操作JavaScript了。JavaScript的封装JavaScript的扩充J... 阅读全文
摘要:
面向对象概念介绍1. oo程序设计与过程程序设计的区别: 1.1面向对象程序设计是基于对象的,属性、方法包含类当中,具体操作也是针对类。而过程化编程是将属性、方法分开的。 1.2适当的程序设计:如果oo程序设计适当的话,不会存在全局数据之类的东西,这一点保证oo程序设计的数据完整性。2. 从过程化程序设计,转换到面向对象程序设计: 2.1面向对象程序开发基于的是对象操作,数据传输用对象、数据... 阅读全文
摘要:
1.通过配置+反射,可以实现“开放封闭”原则,对扩展开放,对修改封闭。 2.易维护,通过分层,将程序进行分层,进行职责划分。 3.可用性提高。单独维护一个DLL文件即可。可以实现插拔操作。 工厂方法+配置文件+反射,主要是一种思路的体现,通过这种方式可以扩展我们的思维方式。 1.Yang.ISQL 数据库操作的接口,作为Yang.MSSQL、Yang.Orac... 阅读全文
摘要:
突然想写一个这样的东西。通过Lambda、泛型、匿名类型、扩展方法等技术写一个类似于Linq的东西挺不错,会对自己这些技术的理解有所提高。 1.通过扩展方法给IEnumerable<T>类型的数据增加一些方法。 2.扩展IEnumerable<T>,实现Sum、Max、Min、Avg、Group By、Select、Where等方法。 3.委托Func<T, T... 阅读全文
摘要:
新增的语法确实解决了很多问题,方便的很多。总结一下,防止日后时间长忘记。 1.隐式类型化本地变量、隐式类型数组初始化[代码] 2.对象初始化器、集合初始化器[代码] 3.匿名类型[代码] 4.扩展方法[代码] 5.委托、匿名方法、Lambda表达式[代码] 当然还有Lambda表达式,和Linq语言。所有的这些新增的特性,统一的展现都是在Linq语言当中。都是为其进行服务的。事例:下载... 阅读全文
摘要:
SQL server中convert函数大全 语句及查询结果: SELECT CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM SELECT CONVERT(varchar(100), GETDATE(), 1): 05/16/06 SELECT CONVERT(varchar(100), GETDATE(), 2): 06.0... 阅读全文