摘要:经过上一次的改造,鸭子类不是靠继承行为接口而拥有行为,而是靠调用者指定行为的方式。例如:指定叫声的形式和飞的形式。保留了灵活性,将权利交给调用者,鸭子本身不再负责行为的初始化。具体的行为表现交给指定的行为方式处理。如果需要有新的行为方式定义,只要实现行为的接口,然后给鸭子指定新定义的行为方式即可。 就像上一回的例子中,将几个类结合起来使用,这就是组合composition。这种做法和“... 阅读全文
荷兰,伟大的荷兰,世界冠军,继承了克鲁伊夫,继承荷兰三剑客的优秀传统
2010-07-02 23:54 by Virus-BeautyCode, 936 阅读, 0 推荐, 收藏, 编辑
摘要:荷兰,伟大的荷兰,世界冠军,继承了克鲁伊夫,继承荷兰三剑客的优秀传统。 我爱库伊特,伟大的库伊特,绝对应该给一个最佳球员奖!!!! 阅读全文
《深入浅出设计模式-中文版》读书笔记 策略模式(二)
2010-07-02 07:25 by Virus-BeautyCode, 2446 阅读, 0 推荐, 收藏, 编辑
摘要:接着上回的“针对接口编程,不针对实现编程”原则说。 假设开始我们设计了一个鸭子基类,发声、游泳和显示外观是鸭子类的功能。发声和游泳是通用的方法,放在基类实现,显示外观由于鸭子的不同而不同,放在继承类实现。可以设计出下面的类结构。 代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http... 阅读全文
《深入浅出设计模式-中文版》读书笔记 开篇乱弹(一)
2010-07-01 06:42 by Virus-BeautyCode, 4464 阅读, 4 推荐, 收藏, 编辑
摘要:oreilly的《Head.First设计模式》,《深入浅出设计模式》是一本好书,用生动的语言讲解设计模式。而且是逐级深入,并没有一上来就gof23,就一大套设计模式的理论。而是用例子切入,使得读者逐步的理解设计模式的好处,理解设计模式可以解决的问题,使我们有了继续读下去的理由和勇气,而不至于被大片的理论所击倒。 更加容易入门,为以后读那些理论打下坚实的基础。 感谢作者写出一本这么好的书。 ... 阅读全文
面向对象类设计的五大原则(一)单一职责原则Single Responsibility Principle
2010-06-29 15:45 by Virus-BeautyCode, 4603 阅读, 3 推荐, 收藏, 编辑
摘要:引言 面向对象类设计,或者说是面向对象设计,有五大原则: Single Responsibility Principle 单一职责原则 Open Closed Principle 开闭原则 Liskov Substitution Principle 里氏替换原则 Dependency Inversion Principle 依赖反转原则 Interf... 阅读全文
微软企业库5.0学习笔记(四十五)实战数据验证模块----高级篇
2010-06-24 19:41 by Virus-BeautyCode, 2833 阅读, 2 推荐, 收藏, 编辑
摘要:1、添加自定义的提示信息 验证失败的提示信息可以自定义,企业库的验证模块也提供了自定义的功能。是通过读取资源文件的设置来实现的。首先添加资源文件,在项目的右键菜单中选择【属性】,然后点击【资源】添加文件并且定义三个字符串类型的资源。 在上一章中的Customer类的attribute上多添加一些参数,引入资源的命名空间,具体如下所示,就是指明要用的资源名称和类型。 代码 Code h... 阅读全文
微软企业库5.0学习笔记(四十四)实战数据验证模块
2010-06-23 19:22 by Virus-BeautyCode, 2518 阅读, 1 推荐, 收藏, 编辑
摘要:1 在业务对象上添加验证 添加对程序集【Microsoft.Practices.EnterpriseLibrary.Validation.dll】和【System.ComponentModel.DataAnnotations】的引用。 using Microsoft.Practices.EnterpriseLibrary.Validation.Validators; 定义下面的对象 代码C... 阅读全文
关于项目进度慢的思考----如何提高整体开发效率
2010-06-21 23:42 by Virus-BeautyCode, 7580 阅读, 5 推荐, 收藏, 编辑
摘要:我们都是软件行业是世界所有的行业中,失败率最高的。进度最没有办法度量的,通常会拖,一拖再拖,而且人员都扑上去了,可是还是慢。 为什么? 多少年,多少人,更有很多的专业公司都在分析这里面的原因。为什么我们的人员都在加班了,没有人偷懒,都很努力,效率却上不去? 据我分析和思考,认为可以从下面两个角度看这个问题:业务和技术。究其原因的话,有下面几个常见的原因: 业务混乱。业务是软件的基础,软件是... 阅读全文
微软企业库5.0学习笔记(四十三)数据验证模块
2010-06-19 08:07 by Virus-BeautyCode, 3565 阅读, 1 推荐, 收藏, 编辑
摘要:概况 任何接受用户或者是其他系统输入的应用,一定要确保信息是合法的,符合特定的规则。例如:在处理一个订单的时候,需要检查客户的电话号码一定要是数字。另外,如果验证失败,需要返回表明错误的信息。 企业库的验证模块允许开发者实现结构化的,易维护的验证方案。另外,验证模块允许在下面的技术中使用: ASP.NET Windows Communication Foundation(WCF) Win... 阅读全文
NET 应用架构指导 V2 学习笔记(二十四) 跨层关注问题
2010-06-17 20:00 by Virus-BeautyCode, 2228 阅读, 0 推荐, 收藏, 编辑
摘要:概况 大部分的应用都会包含一些跨越逻辑层和物理层的通用功能。这些功能包括:用户认证、授权、缓存、通信、异常管理、日志、基础框架和合法性验证。这些功能通常被叫做“跨层关注”,因为它会影响整个应用,应该尽可能将他们的代码集中在一起。如果这类代码散落在各个地方,需要修改的时候,就需要打开每个地方进行修改;如果集中管理的话,只需要打开一个地方,修改一个地方就可以了。 通常的设计... 阅读全文
关于程序员在30岁、35岁之后怎么办的新思考
2010-06-14 10:40 by Virus-BeautyCode, 18718 阅读, 23 推荐, 收藏, 编辑
摘要:首先给大家问个好,祝大家节日快乐! 我这个问题好像也有点“月经贴”的意思,但是觉得要比语言之争的月经贴有价值的多,最起码算是思考,人生指导,领航吧。 好几天没有写博客了,大家也会发现,前段时间我每天都写一篇,都是晚上或者是早上起来写的。近几天感觉熬不动了,有点想歇一歇的意思。为什么呢?我才三十岁,怎么会精力不够用呢?当然了,世界杯是一个因素吧。 今年一直在深度加班,最近感觉自己身体确实不如五... 阅读全文
微软企业库5.0学习笔记(四十二)异常处理模块
2010-06-14 00:04 by Virus-BeautyCode, 3599 阅读, 0 推荐, 收藏, 编辑
摘要:企业库的异常处理模块,帮助开发者和策略制定者实现常用的设计模式,创建一致的异常处理策略。 一个健壮的、设计良好的异常处理策略是系统设计和实现的重要功能,帮助你避免暴露敏感信息,避免处于不一致的状态。 一个异常处理策略由一系列策略组成,定义了如何为操作者、管理员、技术支持者提供适当的帮助。 给用户以友好的提示信息。 在日志或者是其他位置存储异常信息。 帮助技术支持者跟踪原因。 企业库的异... 阅读全文
NET 应用架构指导 V2 学习笔记(二十二) 设计数据访问组件
2010-06-09 06:53 by Virus-BeautyCode, 2081 阅读, 1 推荐, 收藏, 编辑
摘要:概况 数据层组件提供了访问系统边界内,或者是其他系统暴露的数据的方法。包括数据访问组件,用来访问系统边界内的数据,服务代理组件,用来访问其他服务暴露的数据。另外,还可能包含其他帮助功能和工具类的组件。 本章将帮助你理解设计数据组件基本的步骤。第一步是确定对于访问的数据有什么限制条件,帮助你选择适当的数据访问技术。接下来是选择映射策略,决定数据访问方法。然后决定数据访问组件如何连接数据源。最后,... 阅读全文
分页存储过程(五)在MS SQL Server中打造更加准确,且有一点效率提升的的分页结果
2010-06-08 08:38 by Virus-BeautyCode, 1734 阅读, 0 推荐, 收藏, 编辑
摘要:以前的分页我都是主子表join查询,然后会出现下面的记录形式,返回时一个数据集合 [代码] 这样的话,就造成大量的数据冗余,就是【订单1】的数据被重复多次从数据库读取。这次我尝试将他们分开返回,返回两个数据集合 订单集合 [代码] 明细集合 [代码] 这样的结果不知道会不会有效率提升,还有待测试。但是数据量少了,联合的数据量也少了。以前需要联合整张订单表和整张明细表,现在首先... 阅读全文
NET 应用架构指导 V2 学习笔记(二十一) 设计业务实体
2010-06-08 07:05 by Virus-BeautyCode, 2042 阅读, 0 推荐, 收藏, 编辑
摘要:概况 业务实体存储数据,通过属性暴露数据,包含并管理应用需要用的数据,同时提供编程访问及相关的功能。业务实体应该在内部进行数据有效性验证,并且封装业务逻辑来保证一致性,实现业务规则和行为。因此,设计适当的业务实体,对于最大化性能和高效性的业务层来说,是非常重要的。 本章将帮助你理解业务实体组件的设计。首先,看看应用中使用的不同数据格式,以及数据被如何使用。接下来,你将会学到,在设计中,已有的数... 阅读全文