找到相关内容 30
GoF著作中未提到的设计模式(4):Double Dispatch
我们先从字面上去理解它吧,直观地说,它指的是两次dispatch。这里的dispatch指的是什么呢?举个例子: class Event { public: virtual void PrintName() { cout<<"我是通用事件"<<endl;
http://cyqdata.cn/cnblogs/article-detail-42102 
什么是简单的设计
为什么需要简单的设计?我想这和人的特点有关。我不止在一个地方看到过,人同时能够处理的信息不超过7个。我想这应该就是人们追求简单设计的根本原因,人需要用一个简单的设计去解决现实中的问题。如果真的存在完美,也许简单的东西就是完美的东西。很多人都崇尚简单设计的思想,那么什么是简单设计?下面谈谈我的理解:1、首先要能够解决实际问题的;这是所有设计要达到的目标,虽然实现的手段和方法,效果不同。简单的设计也必
http://cyqdata.cn/cnblogs/article-detail-41728 
GoF著作中未提到的设计模式(3):Null Object
Null Object模式的目的包括: 1. 当对象提供者无法提供指定类型的对象时, 返回一个什么都不做的对象, 这对调用者是透明的,并且调用者不用判断获得的对象是否为null了,当然,对象提供者必须告知调用者(通过约定等). 2. 有时候需要传递一个什么都不做的某个类型的对象给合作方. 例如某个函数需要实现特定接口的对象(通过参数传入)进行某些操作, 该函数的调用者在某些情况下希望不进行这些操
http://cyqdata.cn/cnblogs/article-detail-41367 
如何利用Interception简化MVVM中的Model和ViewModel的设计
这一篇是“如何利用AOP简化MVVM中Model和ViewModel的设计”一文的姊妹篇。阅读本文之前,请一定要先阅读上一篇,否则你可能对有关问题理解不深。   上一篇说到,我们可以用AOP的方式,具体来说,我们使用了一个第三方的框架(PostSharp)来实现了代码注入。PostSharp的方式是静态注入,它是需要改变IL代码的。 请看下面这个截图,Customer类型里面的IL代码其
http://cyqdata.cn/cnblogs/article-detail-40755 
如何利用AOP简化MVVM中Model和ViewModel的设计
这一篇谈一个MVVM中的一个虽然小但却很实际的问题,就是如何简化Model和ViewModel的设计。这是我们在项目中总结提炼的一些做法。 【备注】关于MVVM的概念,并不是本文的重点。如果你对MVVM还不熟悉,可以参考这里。关于MVVM与之前的MVP,MVC设计模式的渊源和比较,还有目前主流的几个MVVM框架的大致情况,我最近可能再会抽时间另外整理一篇,有兴趣的朋友关注一下。 有用过MVVM的
http://cyqdata.cn/cnblogs/article-detail-40733 
关于“网上社会实践”网站的设计
前段时间,辅导员发了一封邮件,是关于学校要建设“网上社会实践”创新项目的通知。因为广外学习ASP.NET的人不多,所以不出意外地是我接了。 这个项目是用于学生网上社会实践的东西。也是一个创新项目来的。但是这些对于我们学技术的人来说,都不是重点。更多的时候,我希望知道的是,他们要我们怎么做。需求是什么?网站用什么功能?有什么要求?更多的时候,我是用一个旁观者的身份去做项目的。
http://cyqdata.cn/cnblogs/article-detail-40682 
Albian开发库的设计与规划
Albian是一个开源的企业级开发库。它提供了我们在开发过程中使用的ORM、IOC等功能。但是如果Albian只是提供这些功能,那么现在市面上随便找找开源的框架就可以集成。Albian真正的亮点在于它提供的另外几个实用但是市面上很少提供的功能。数据库(表)路由、读写分离、异构数据库、分布式锁服务、缓存同步,分布式锁等等功能。   功能解释:     ORM、IOC:谁都知道,不解释;     1.
http://cyqdata.cn/cnblogs/article-detail-40654 
ASP.NET的设计思想
自从有了html与http,就有了浏览器与Web服务器,并有了Web应用,最初的交互模式是这样的:   该模式很好地运行了很多年。然而,随着计算机应用的发展,人们越来越不满足于只有静态内容的页面,而由某种机制动态产生html等代码的需求越来越迫切,于是,很多技术就应运而生,Asp.net就是这样一种技术。从本质上讲,Asp.net就是一种服务器端动态产生html、css、javascript等浏
http://cyqdata.cn/cnblogs/article-detail-40371 
GoF著作中未提到的设计模式(1): Archetype
GoF著作中未提到的设计模式(1):Archetype  半天也没能给这个设计模式想出一个中文名称,算了,有时候还是原版的更容易理解。  简单地说,Archetype设计模式的目的是将业务处理逻辑和具体实现分离,所以至少需要两个参与者:Decorator和Delegate,它们都实现同一个接口,Decorator负责处理业务逻辑,而Delegate负责具体的实现,在Decora
http://cyqdata.cn/cnblogs/article-detail-40124 
关于商城系统中商品类别的设计(续篇)
上一节我说数据库设计有一块硬伤,到底在哪儿?先看下图: 看上图中有什么地方是相同的? “品牌”→“三星”在手机数码分类里面有,在电脑办公分类里面也有,这有什么问题?再来看看上篇中的那个关系图: 再看数据库中存储的数据,首先是(T_FilterCategory表) 如下(T_FilterAttributes表) 如下(T_Filter
http://cyqdata.cn/cnblogs/article-detail-39984 
安全系统的设计
新的需求 昨天发现开发的安全中心已不能够满足外部系统对其的安全访问需求,基本情况是这样的,当前公司需要开发一个反馈中心中,有一个快速反馈的功能,其中有一个需求是能够将快速反馈的通知已邮件的形式发送到相关处理人那里通知他们说,新的反馈信息来了,你们快点来处理啊。 以前设计的安全模型是以下方式: 使用部分为一个用户有一个或多个安全角色,一个安全角色包括一组活动授权,每一个活动授权包括一组授权限制。
http://cyqdata.cn/cnblogs/article-detail-39932 
关于商城系统中商品类别的设计
以XiZiShop为例,如下效果图: 上图红色方框所示为一级类别。 上图所示为二级类别、三级类别和筛选条件类别,以及筛选条件的值。 数据库设计步骤如下: 【步骤一】对于一级类别、二级类别,三级类别,我统一把它们放在一张表里面,名曰:栏目表(T_Columns),各级的父子关系通过表中的FatherCol这一列去进行关联。如下图: 【步骤二】建立好存储一级类别、二级类别和三级类别的表之后,再开
http://cyqdata.cn/cnblogs/article-detail-39694 
Windows 进程管理工具的设计与实现
引子 前阵子曾提到过为了应某些人的需要,得做几个毕业设计,其中一个就是 Windows 的进程管理工具 。 在前期的规划中是做成比较高难度的那种 Windows 进程管理工具, 也就是在底层使用驱动程序来获取进程的信息,而在上层则使用 VC 做用户界面层的。 至于为什么在底层要使用驱动程序来获取进程信息而不是直接在上层使用高级语言来直接获取进程信息, 那是因为在上层中通过高级语言来获取进
http://cyqdata.cn/cnblogs/article-detail-39185 
让敏捷与“以用户为中心的设计”和谐共生
用户体验专家Anthony Colfelt使用一个案例告诉我们:仅有敏捷是不够的;他还深入指出:“以用户为中心的设计”(以下简称UCD)能够,而且应该与敏捷合并使用。   为了表明自己的观点,Colfelt首先提出:对于发掘业务的真正需求这个难题,敏捷是合适的解决之道吗?他以此引出自己的观点。 就其自身而言,敏捷在调整自己、适应变化方面做得很不错。但是我们必须知道:它能否
http://cyqdata.cn/cnblogs/article-detail-37918 
Muduo 设计与实现之一:Buffer 类的设计
陈硕 (giantchen_AT_gmail) Blog.csdn.net/Solstice  t.sina.com.cn/giantchen Muduo 全系列文章列表: http://blog.csdn.net/Solstice/category/779646.aspx 本文介绍 Muduo 中输入输出缓冲区的设计与实现。 本文中 buffer 指一般的应用层缓冲区、缓冲技术,Bu
http://cyqdata.cn/cnblogs/article-detail-36356 
体验Managed Extensibility Framework精妙的设计
MEF(Managed Extensibility Framework)是.NET Framework 4.0一个重要的库,Visual Studio 2010 Code Editor的扩展支持也是基于MEF构建的。MEF的目标是简化创建可扩展的应用程序,其核心类是ComposablePart,即具有组合能力的组件,每一个称为ComposablePart(中文可为可组合构件,不过下文一直采用英文来
http://cyqdata.cn/cnblogs/article-detail-36246 
网站搜索设计之——————关于搜索结果排序的设计
最近在做一个CMS系统的搜索模块,要求对用户帮助比较大的排在前面,在网上搜索了一下,这方面的文章,可是轻量级的设计还是比较少! 废话少说,进入正题! (以下蓝色标示的数字常量大家可以自己个性化设置!) 一、系统需求: 1、VIP会员按等级排前[绝对] 2、最近发布的靠前[相对] 3、热门的(点击高的)靠前[相对] 4、质量好的靠前[相对] 我大体想法是在每条信息后面附加一个权值(powervalu
http://cyqdata.cn/cnblogs/article-detail-36133 
简单ORM工具的设计和编写,自己项目中曾经用过的
   在之前的一个项目中自己编写了一个简单的ORM小工具,这次重新整理和重构了一下代码,之所以说简单是因为该小工具仅仅实现了增删改查的简单功能,不具备数据缓存,延迟加载,关联操作等高级功能。正因为简单所以用起来也不麻烦,代码也不是很复杂,但是在数据层至少可以减少70%以上的代码编写量,可以减少至少50%以上的SQL语句编写量。    设计思想:实体类中的非null属性都会作为SQL语句中
http://cyqdata.cn/cnblogs/article-detail-35869 
页面输出缓存(页面静态化)的设计
随着网站规模的变大,访问量提升,网站服务器越来越不堪重负,浏览者也会对页面打开的速度怨声载道。 这时候最简单的解决方案就是增加缓存。 网站服务器的缓存有很多中,可以放在数据库和Web应用程序之间,也可以放在Web应用程序和Web服务器之间,还可以放在Web服务器和用户浏览器之间,甚至可以直接放在浏览器端。 其中最简单,需要配置最少的莫过于数据库和Web应用程序之间了,并且见效也最快,因为对于现代计
http://cyqdata.cn/cnblogs/article-detail-35843 
步步为营 .NET三层架构解析 八、UI的设计(GridView的设计及其分页)
这次我们设计员工操作列表Custom.aspx和部门操作列表Departmant.aspx的设计.以及如何设计GridView的分页功能. 先调用BLL设计方法获取数据的List列表,转换成PagedDataSource,再设置PagedDataSource属性来实现分页功能. 先看Custom.aspx的设计: <div style="text-align: center">
http://cyqdata.cn/cnblogs/article-detail-35788