随笔分类 -  Design Patterns

Software saintainability and extensionality
摘要:前面的一篇博文DebugLZQ使用三层架构实现了TaskVision,并在后面利用Webservice代替ClassLibrary实现SQL Server 2008数据库操作提供程序。关于三层架构的理解请参考前一篇博文。写这篇博文的目的在于,强调我前面一篇博文中提到但是今天又遇到且花了我一定时间去解... 阅读全文
posted @ 2013-05-01 12:10 DebugLZQ 阅读(4110) 评论(1) 推荐(1) 编辑
摘要:前言: 关于不同框架实现同一个TaskVision:前面DebugLZQ先是用WPF(没有使用MVVM,因为前面使用MVVM实现过过点餐系统),因而这个关键点就放在了WPF的Binding上面;然后用普通的Winform,没有加入任何模式,实现了相同的功能。因此这个重点放在了DataGridView... 阅读全文
posted @ 2013-04-30 21:45 DebugLZQ 阅读(5391) 评论(2) 推荐(6) 编辑
摘要:由于公司开发的技术需求,近期在学习MVVM模式开发WPF应用程序。进过一段时间的学习,感受到:学习MVVM模式,最好的方法就是用MVVM做几个Demo,因为编程里面的东西还是原来的WPF的相关知识。最近学习的资料来源大多为CodePlex、CodeProject和MSDN,以及博客园MS的MVP刘铁锰的一些资料。前面几篇博文DebugLZQ写了,如何来写MVVM,以及Prism框架的安装等等。本篇在前面的基础上,通过一个相对复杂一点的Demo,来学习Prism中的一些类的使用。首先来介绍下今天这个Demo要实现的功能,今天开启的系统是XP,所以下面各位看到的将是XP风格的界面。:·界 阅读全文
posted @ 2012-12-17 19:44 DebugLZQ 阅读(10871) 评论(6) 推荐(3) 编辑
摘要:前面的博文My First MVVM Demo,DebugLZQ用MVVM实现了一个简单的Demo。本文旨在使用Prism提供的一些现有类,来简化前面Hello MVVM。关于Prism的安装,可以参考DebugLZQ前面的博文Prepare for Prism。为了使用Prism框架提供的DelegateCommand、NotificationObject需要添加Prism的引用,参考前面的博文。实现MainWindowViewModel类如下:using System;using Microsoft.Practices.Prism.ViewModel;//using Microsoft.P 阅读全文
posted @ 2012-12-14 22:31 DebugLZQ 阅读(3223) 评论(7) 推荐(0) 编辑
摘要:Prism框架由MS patterns&practices团队开发。下面是Prism的介绍: Prism provides guidance designed to help you more easily design and build rich, flexible, and easy-to-maintain Windows Presentation Foundation (WPF) desktop applications and Silverlight Rich Internet Applications (RIAs) and Windows Phone 7 applicati 阅读全文
posted @ 2012-12-14 21:38 DebugLZQ 阅读(1334) 评论(2) 推荐(2) 编辑
摘要:关于什么是MVVM partten,及MVVM partten的相关理论介绍这篇博文就不多说了,各位可以去看下Youtube相关的tutorial。LZ也是在Youtube、CodePlex和CodeProject上看了许久的教材后,写下了这篇博文,类似的例子外文的网站上很多。写作这篇随笔的目的是,感受一下如何写一个MVVM的WPF 程序。MS的WPF MVP刘铁锰给的一个视频对MVVM的介绍也不错,示例也很好。作为一个MVVM的初学者,希望能通过这篇博文,展现MVVM代码的写作流程。Beginerto Beginer,为此,LZ在代码中添加了必要的说明。我们的Demo设计的界面如下: ... 阅读全文
posted @ 2012-12-14 09:31 DebugLZQ 阅读(2185) 评论(0) 推荐(2) 编辑
摘要:最近很忙,既要外出找工作又要兼顾老板公司的项目。今天在公司,忙里偷闲,总结一下.NET中的异步调用函数的实现方法,DebugLZQ在写这篇博文之前自己先动手写了本文的所有示例代码,开写之前是做过功课的,用代码说话方有说服力。 本文的内容旨在用最简洁的代码来把异步调用的方法说清楚,园子里的高手老... 阅读全文
posted @ 2012-11-02 15:12 DebugLZQ 阅读(17632) 评论(23) 推荐(20) 编辑
摘要:---微软WPF带来的团队变化和软件技术变化Model-View-ViewModel是一种架构模式,主要在WPF、Silverlight和WP7开发里使用,它的目标是从视图层移除几乎所有代码隐藏(code-behind)。交互设计师可以专注于使用XAML表达用户体验需求,然后创建和视图模型的绑定,而视图模型则是由应用程序开发者开发和维护的。MVVM是更加通用的Presentation模式的一个具体实现。MVVM视图模型包含概念模型而不是数据模型,所有业务逻辑和其它操作都是在模型和视图模型里完成的。MVVM 把应用程序的状态和行为进行封装,隔离了用户界面和用户体验部分,从而使得设计者与开发者可独 阅读全文
posted @ 2012-05-15 15:15 DebugLZQ 阅读(3322) 评论(10) 推荐(8) 编辑
摘要:工厂方法(Factory Method)模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。 工厂方法模式是简单工厂模式的衍生,解决了许多简单工厂模式的问题。首先完全实现‘开-闭原则’,实现了可扩展。其次更复杂的层次结构,可以应用于产品结果复杂的场合。。。 阅读全文
posted @ 2012-03-27 22:05 DebugLZQ 阅读(272) 评论(0) 推荐(1) 编辑
摘要:本节学习了代理模式,重点介绍了代理模式适用的场合... 阅读全文
posted @ 2012-03-26 19:50 DebugLZQ 阅读(327) 评论(0) 推荐(0) 编辑
摘要:本节介绍修饰模式---该模式是面向对象编程领域中,一种动态地往一个类中添加新的行为的设计模式。该模式的关键在于“动态地实现功能扩展”,还应避免“类爆炸”的问题。。。 阅读全文
posted @ 2012-03-20 21:24 DebugLZQ 阅读(1034) 评论(0) 推荐(2) 编辑
摘要:这篇文章,不需要你一次就看懂,如果你真的能一次都看懂,我想设计模式对于你来说已经没什么难度了..因为设计模式就是要体现这些原则的,你可以把设计原则看做是一门语言,设计模式是由这些语言编码的程序..你既然已经明白,精通了语言,剩下的编码自然是很简单的事情,编码的越多则经验越多,经验越多则对原则的理解就越深...这是一个学习领悟的过程.. 我希望这篇文章能帮助新人感受到设计模式的乐趣,避免重复编码....减少劳动量..如果你能在用心静静的体会文章的每个字,每段话的意思,这样可以避免走很多弯路...我以前学习设计模式的时候,就是因为忽略了原则,凭着感觉,看着书来学习设计模式,结果就是知其然而不知其所以然....如果你是初学设计模式,再了解了OOP的三大原则(封套,继承,多态)之后,请反复的结合原则,来学习设计模式..这样可以达到事半功倍的效果... 阅读全文
posted @ 2012-03-05 20:30 DebugLZQ 阅读(362) 评论(2) 推荐(0) 编辑
摘要:策略模式作为一种软件设计模式,指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法。比如每个人都要“交个人所得税”,但是“在美国交个人所得税”和“在中国交个人所得税”就有不同的算税方法... 阅读全文
posted @ 2012-03-04 10:39 DebugLZQ 阅读(1224) 评论(0) 推荐(2) 编辑
摘要:本文是学习汤姆大叔的别再让面试官问你单例(暨6种实现方式让你堵住面试官的嘴)的小结。------天外有天,人外有人啊,博客园是.NET技术人员的天堂! 写文本的目的,不是说从单例有多重要,多牛逼啥的。其实更多地是建议博客园的兄弟在面试的时候以另外一个角度来看到面试官的问题,做到主动出击,也就是说当人问你一个问题的时候,绝对不要想着他问的只是问题的表面,可能还隐藏着很多陷阱(因为面试官通常不会有太多时间面试,一般第一次约见都是60-90分钟,所以不太可能问太多问题,只能问几个问题,然后再根据这些问题延时出各种问题),所以在你回答问题的时候,尽量要避开这些陷阱,比如单例里我们经常谈到加锁和线程的问题,如果你对多线程不熟悉,防止陷在里面,那可以赶紧主动说出双锁这种实现方式,然后回头一转话题说:”其实单例要考察我们的东西有很多,比如私有构造函数,静态构造函数,静态字段,readonly和const的区别等等“,其实一般说了这么多以后,面试官基本上不会再在单例上揪住不放了,可能只是象征性问一下构造函数的区别而已,因为这时候他已经知道你基本上了解相关的内容了。当然,如果你想欲擒故 阅读全文
posted @ 2012-03-01 13:00 DebugLZQ 阅读(336) 评论(0) 推荐(2) 编辑
摘要:用c#实现的一个计算器的控制台程序---学习---简单工厂模式。内容整合了程杰的大话设计模式、维基百科和各位博友的贡献,正如牛顿所说:“如果说我比别人看的远一些,那是因为我站在了巨人的肩膀上”。 从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现... 阅读全文
posted @ 2012-02-29 16:10 DebugLZQ 阅读(1451) 评论(6) 推荐(3) 编辑