随笔分类 - [20]DesignAnalysis设计分析
-
白话MVP 和 MVVM 【转】
摘要:本文转自:http://www.cnblogs.com/Jax/archive/2009/10/09/1579404.html前言一:没有想到的是,这篇文章竟然断断续续写了一个多月,期间反复改了多次,思想也经历了好几次升华。本来文章的题目是《MVP之七十二变》,但是最终发现变来变去其实就只有两个模式,MVP和MVVM,而后者还是从前者中衍生的,二者形差而神似,正所谓——条条... 阅读全文
-
.Net平台AOP技术研究
摘要:.Net平台与Java平台相比,由于它至今在服务端仍不具备与unix系统的兼容性,也不具备类似于Java平台下J2EE这样的企业级容器,使得.Net平台在大型的企业级应用上,常常为人所诟病。就目前而言,.Net平台并没有提供AOP技术的直接实现,而微软在未来对于.Net的发展战略目标,我们仍未可知。但我相信微软对于目前炙手可热的AOP技术应该不会视而不见。也许在未来的.Net平台下,会出现类似于S... 阅读全文
-
《深入浅出设计模式-中文版》读书笔记(二)
摘要:接着上回的“针对接口编程,不针对实现编程”原则说。 假设开始我们设计了一个鸭子基类,发声、游泳和显示外观是鸭子类的功能。发声和游泳是通用的方法,放在基类实现,显示外观由于鸭子的不同而不同,放在继承类实现。可以设计出下面的类结构。publicabstractclassDuckBase{publicvirtualvoidQuack(){Console.WriteLine("我... 阅读全文
-
策略模式-4
摘要:策略模式-43.3 Context和Strategy的关系 在策略模式中,通常是上下文使用具体的策略实现对象,反过来,策略实现对象也可以从上下文获取所需要的数据,因此可以将上下文当参数传递给策略实现对象,这种情况下上下文和策略实现对象是紧密耦合的。 在这种情况下,上下文封装着具体策略对象进行算法运算所需要的数据,具体策略对象通过回调上下文的方法来获取这些数据。 甚至在某些情况下,策略实现对象还可以... 阅读全文
-
《深入浅出设计模式-中文版》读书笔记系列
摘要:1.《深入浅出设计模式-中文版》读书笔记(一).2.《深入浅出设计模式-中文版》读书笔记(二).3.《深入浅出设计模式-中文版》读书笔记(三).4.《深入浅出设计模式-中文版》读书笔记(四).5.《深入浅出设计模式-中文版》读书笔记(五)6.Head.First.Object-Oriented.Design.and.Analysis《深入浅出面向对象的分析与设计》读书笔记(一) 阅读全文
-
设计模式是用来弥补面向对象编程缺陷的方法总结
摘要:面向对象和设计模式都是大家耳熟能详的概念。面向对象是以对象为基本元素,对数据与逻辑行为进行封装。实现面向对象过程的方法是使用抽象,同时在使用抽象进行分析设计的时候就产生了类型,并隔离了抽象与实现。这个过程是有很多的优点的,熟话说得好,完美的东西肯定也有不足。因此我们这里要讨论的是面向对象的缺点,以及设计模式就是用来弥补这些缺陷的方法总结。抽象是特殊到一般的过程。在这个过程中会忽略对象的个性而归纳出... 阅读全文
-
C# 用装饰模式实现蝌蚪变青蛙的过程-续
摘要:在编蝌蚪变青蛙代码过程中,考虑的是蝌蚪变青蛙的进化过程,也就是想的是如何从一种类型转化成另外一种类型的C#实现方案。根据网友的反馈Swimable, Breathable 直接继承Animal不妥,实际上在编码的过程中也考虑这个问题,只是没有想要完善整个代码。因此有必要对前面的代码的不合理性进行修改或者用时髦的话来讲重构现在的代码。首先将Swimable和Breathable 分别重名为Swima... 阅读全文
-
软件工程项目中数据库的作用以及敏捷开发
摘要:软件工程项目中数据库的作用以及敏捷开发 在设计软件的时候,必须明确把握数据库在软件中的作用,这样才能做到有的放矢。本人认为数据库的作用除了做数据的存储持久化作用之外便没有其他的作用。之所以需要数据库就是因为软件中的前端表示层、服务层以及业务逻辑层都必须是无状态的,这就要求软件中有一个组件来保存应用程序的状态。那么这个职责就由数据库来承担。在以前的软件开发过程中,往往没有把握数据库的核心作用,而且以... 阅读全文
-
面向对象之对象世界
摘要:面向对象就是是以对象的观点出发,思考软件世界中的对象和对象之间关系。对象是面向对象世界的原子 对象在对象世界中的位置就好像物质世界中的分子、原子一样。对象是面向对象世界的基本单位。前面的文章提高到对象,现实生活中的对象。 面向对象方法体系对象世界是一个立体的世界,在实施面向对象方法的时候的可以用系统的方法来考虑对象。对象之间(从左到右) 对象层次(从上到下或从下到上) 对象状态(从前到后) 这样全... 阅读全文
-
面向对象之抽象方法
摘要:面向对象之抽象方法 在面向对象过程中,知道对象是什么但是总感觉缺乏一种方法来实现面向对象。要实现面向对象就是要用抽象的方法来归纳对象类型,对象的属性和行为以及对象协作关系。抽象是具体到一般化的过程。目的是为了把概念和实现的分离以达到应对软件需求的变化的影响。抽象方法是面向对象中的最基本方法也是最重要的方法之一。在实际使用抽象方法的时候主要是对象分类,规范行为。抽象使对象具有一般的属性和行为,做到数... 阅读全文
-
计算器项目开发过程系列
摘要:计算器项目开发过程系列 计算器是在学习编程语言的时候练习的经历的一个程序,这个程序虽然看起来比较简单,但是仔细体会这个程序实在是麻雀虽小,五脏俱全。也是一个很好的面向过程的分析开发方法与面向对象的方法之间的区别与联系。同时这个程序大家都用过,所以对用例很熟悉。以前在进行编程语言学习的时候没有尝试过这么从软件工程的角度来考虑这个看似简单的程序。下面是这个文章系列所要讲述的内容 首先会用基本的面向... 阅读全文
-
面向对象之对象本身
摘要:万事万物都是对象,但是现实生活有什么具体的对象呢,比如你我他,上海北京,网站,苹果,手机,世博会开幕,公司开张等都是对象。原文:http://www.cnblogs.com/zengyongjoy/http://www.cnblogs.com/zengyongjoy/// --http://www.cnblogs.com/zengyongjoy/// --http://www.cnblogs.... 阅读全文
-
31天重构学习笔记31. 使用多态代替条件判断
摘要:摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对31天重构最早接触是在2009年 10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的。记得当时一口气看完了整个系列并没有多少感觉,因为这些基本上项目都在使用,只是我们没有专门把它标示和整理出来,所以也没有引起多大的重视。现在突然接手这个重构项目,由于团队成员技术和经验参差不齐... 阅读全文
-
31天重构学习笔记28. 为布尔方法命名
摘要:摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对31天重构最早接触是在2009年 10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的。记得当时一口气看完了整个系列并没有多少感觉,因为这些基本上项目都在使用,只是我们没有专门把它标示和整理出来,所以也没有引起多大的重视。现在突然接手这个重构项目,由于团队成员技术和经验参差不齐... 阅读全文
-
31天重构学习笔记29. 去除中间人对象
摘要:摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对31天重构最早接触是在2009年 10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的。记得当时一口气看完了整个系列并没有多少感觉,因为这些基本上项目都在使用,只是我们没有专门把它标示和整理出来,所以也没有引起多大的重视。现在突然接手这个重构项目,由于团队成员技术和经验参差不齐... 阅读全文
-
31天重构学习笔记30. 尽快返回
摘要:摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对31天重构最早接触是在2009年 10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的。记得当时一口气看完了整个系列并没有多少感觉,因为这些基本上项目都在使用,只是我们没有专门把它标示和整理出来,所以也没有引起多大的重视。现在突然接手这个重构项目,由于团队成员技术和经验参差不齐... 阅读全文
-
31天重构学习笔记26. 避免双重否定
摘要:摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对31天重构最早接触是在2009年10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的。记得当时一口气看完了整个系列并没有多少感觉,因为这些基本上项目都在使用,只是我们没有专门把它标示和整理出来,所以也没有引起多大的重视。现在突然接手这个重构项目,由于团队成员技术和经验参差不齐,... 阅读全文
-
31天重构学习笔记27. 去除上帝类
摘要:摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对31天重构最早接触是在2009年 10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的。记得当时一口气看完了整个系列并没有多少感觉,因为这些基本上项目都在使用,只是我们没有专门把它标示和整理出来,所以也没有引起多大的重视。现在突然接手这个重构项目,由于团队成员技术和经验参差不齐... 阅读全文
-
31天重构学习笔记24. 分解复杂判断
摘要:摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对31天重构最早接触是在2009年10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的。记得当时一口气看完了整个系列并没有多少感觉,因为这些基本上项目都在使用,只是我们没有专门把它标示和整理出来,所以也没有引起多大的重视。现在突然接手这个重构项目,由于团队成员技术和经验参差不齐,... 阅读全文
-
31天重构学习笔记25. 引入契约式设计
摘要:摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对31天重构最早接触是在2009年10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的。记得当时一口气看完了整个系列并没有多少感觉,因为这些基本上项目都在使用,只是我们没有专门把它标示和整理出来,所以也没有引起多大的重视。现在突然接手这个重构项目,由于团队成员技术和经验参差不齐,... 阅读全文