.net 面向对象设计与模式
文章平均质量分 74
长弓大侠
这个作者很懒,什么都没留下…
展开
-
c#封装jmail的pop3收邮件(转摘)
w3 JMail v4.4 Professional 的获取请自行 google!或参阅 http://community.csdn.net/Expert/TopicView.asp?id=3739405w3 JMail v4.4 Professional 是一个 COM 的组件,我用 C# 把其 POP3 COM 类封装成一个用于收取邮件的 .Net 组件:实现了 //同步事件 public转载 2007-11-12 11:26:00 · 1886 阅读 · 0 评论 -
依赖倒置原则--DIP
一、DIP简介(DIP--Dependency Inversion Principle):1、高层模块不应该依赖于低层模块,二者都应该依赖于抽象。2、抽象不应该依赖于细节,细节应该依赖于抽象。 高层模块包含了一个应该程序中的重要的策略选择和业务模型,正是这些高层模块才使得其所有的应用程序区别于其他,如果高层依赖于低层,那么对低层模块的改动就会直接影响到高层模块,从而迫使它们依次做出原创 2008-12-10 12:21:00 · 948 阅读 · 0 评论 -
再谈谈接口和抽象类
到现在接口和抽象类还是有很多人对这两种情况不能很好的应用前些天在网上看到有位仁兄说了:接口是给外人用的,而抽象类是给自家子孙用的,哈哈,这句话我个人认为很是经典呀。 其实怎么说了?让我们去分解一下上面那句话。 “"接口是给外人用的”接口和抽象类在大致的功能上没什么区别。但是在设计上和就从它表面的字面语义上去理解,接口就是对外的嘛,就是对外部客户代码提供的一组规则,它忌讳修原创 2008-12-23 09:29:00 · 1450 阅读 · 1 评论 -
关联--依赖、组合--聚合
关联--依赖、组合--聚合 联系与区别:依赖是比关联弱的关系,关联代表一种结构化的关系,体现在生成的代码中,以java为例: 若类A单向关联指向类B,则在类A中存在一个属性B b。 若类A依赖类B,则不会有这个属性,类B的实例可能存在于某个方法调用的参数中,或某个方法的局部变量中。 关联--依赖、组合--聚合 联系与区别:依赖是比关联弱的关系,关联代表一转载 2009-08-02 09:53:00 · 1240 阅读 · 0 评论 -
初级程序员试题-[中国软件业目前状况?]
建立模型时可以用英文也可以用中文标示模型中的文字部分。 ① 在系统模型中为什么要使用多种UML图?(20分) ② 对象之间的关联关系有哪几种?两个对象之间能以多种方式关联吗?(15分) ③ 有一句格言“为自己辩护的律师对诉讼人来说是徒劳的”。试着建立这句格言的类模型。(20分) ④ 什么叫实现?实现和继承有何相似之处?两者又有何不同之处?(15分) ⑤ 以计算机(computer)作为类转载 2009-08-02 11:30:00 · 1486 阅读 · 0 评论 -
代码复用的规则
对接口编程"对接口编程"是面向对象设计(OOD)的第一个基本原则。它的含义是:使用接口和同类型的组件通讯,即,对于所有完成相同功能的组件,应该抽象出一个接口,它们都实现该接口。具体到JAVA中,可以是接口(interface),或者是抽象类(abstract class),所有完成相同功能的组件都实现该接口,或者从该抽象类继承。我们的原创 2009-05-26 08:51:00 · 835 阅读 · 0 评论 -
类与类关系的UML图与代码表现
类与类关系的UML图与代码表现 2008-12-19 来源:blogjava.net 一 :二 : 三 :四 :五 : 类与类之间的关系对于理解面向对象具有很重要的作用,存在以下关系:(1)泛化(Generalization) :狗与动物 (空箭头)转载 2009-08-11 16:52:00 · 1473 阅读 · 0 评论 -
[品]观察者模式
在面向对象编程中,开发者越来越注重以前的代码的可重用性和可维护性。设计模式使人们可以更加简单方便地复用成功的设计和体系结构。将已证实的技术表述成设计模式也会使新系统开发者更加容易理解其设计思路。今天我们来理解一下观察者模式(Observer Patterns)。观察者模式属于行为模式,是定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动转载 2009-08-13 14:41:00 · 1071 阅读 · 0 评论 -
(转)程序员眼中的UML (1)
UML自1997年诞生以来,受到无数厂商、组织、专家学者的追捧和拥护,短短几年时间,便有一统天下之势。提起建模语言,舍UML其谁?UML相关标准 OMG组织作为影响力最大的面向对象技术的机构,早早便将UML收入囊中,力捧其为标准建模语言。OMG在CORBA取得成功之后,最大的着力点便是MDA架构,而MDA架构的四大标准UML、MOF、XMI和CWM中,围绕着UML的技术便有三种:UML本身转载 2010-01-12 13:51:00 · 1729 阅读 · 1 评论 -
UML用例图
转自:http://www.cnblogs.com/panjun-Donet/archive/2008/10/20/1315030.html 用例图主要用来图示化系统的主事件流程,它主要用来描述客户的需求,即用户希望系统具备的完成一定功能的动作,通俗地理解用例就是软件的功能模块,所以是设计系统分析阶段的起点,设计人员根据客户的需求来创建和解释用例图,用来描述软件应具备哪些功能模块以及转载 2010-01-11 15:25:00 · 1400 阅读 · 0 评论 -
开放封闭原则--OCP
一、OCP简介(OCP--Open-Closed Principle):Software entities(classes,modules,functions,etc.) should be open for extension, but closed for modification。软件实体应当对扩展开放,对修改关闭,即软件实体应当在不修改(在.Net当中可能通过代理模式来原创 2008-12-10 12:48:00 · 805 阅读 · 0 评论 -
单一职责原则--SRP
一、SRP简介(SRP--Single-Responsibility Principle):就一个类而言,应该只专注于做一件事和仅有一个引起它变化的原因。 所谓职责,我们可以理解他为功能,就是设计的这个类功能应该只有一个,而不是两个或更多。也可以理解为引用变化的原因,当你发现有两个变化会要求我们修改这个类,那么你就要考虑撤分这个类了。因为职责是变化的一个轴线,当需求变化时,原创 2008-12-10 12:39:00 · 966 阅读 · 0 评论 -
接口隔离原则--ISP
一、ISP简介(ISP--Interface Segregation Principle):使用多个专门的接口比使用单一的总接口要好。一个类对另外一个类的依赖性应当是建立在最小的接口上的。一个接口代表一个角色,不应当将不同的角色都交给一个接口。没有关系的接口合并在一起,形成一个臃肿的大接口,这是对角色和接口的污染。 “不应该强迫客户依赖于它们不用的方法。接口属于客户,不属于它所原创 2008-12-10 12:36:00 · 786 阅读 · 0 评论 -
.net 好书收藏(适应各个层次)
原创 2007-11-13 22:39:00 · 3213 阅读 · 0 评论 -
深入继承 - 抽象类和接口
因为这个视频还没有做完,我想把抽象类和接口全部做完,估计是两级或者三级,因为里面包含对以前学过的知识的一个复习和其他一些小细节,所以不做完就很难得到一个完整的思路,这两点确实是很绕的,如果没有一个完整的思路和一个比较有说服力的演示,确实很难说清楚! 说实在这两个知识点我确实做得很头疼,演示简单了怎么也说不出为什么需要用这个东西,复杂了又很难讲清楚!我实在很郁闷,目前只是把基本的东西做出来了转载 2007-11-19 16:58:00 · 953 阅读 · 0 评论 -
关于.net委托的一篇妙文
导读: 有许多人问的,.Net中的委托以及事件处理。我拿简单的例子说明一下,是现实中的例子: 比如说一个公司(场景),你是老板,手下有两个员工,小张和小王。 你命令小王,如果小张玩游戏,则小王扣去小张500元钱。 这就是现实中的委托。 实际上,在写程序中,程序员就是老板,小张和小王就是两个对象。小张玩游戏是一个方法,小张还有一个游戏事件,他玩游戏激发这个事件。而小王就是事件处理转载 2007-11-25 10:31:00 · 920 阅读 · 0 评论 -
.NET委托:一个C#睡前故事
.NET委托:一个C#睡前故事英文版原作者:Chris Sells(www.sellsbrothers.com)翻译:袁晓辉(www.farproc.com http://blog.csdn.net/uoyevoli)紧耦合从前,在南方一块奇异的土地上,有个工人名叫彼得,他非常勤奋,对他的老板总是百依百顺。但是他的老板是个吝啬的人,从不信任别人,坚决要求随时知道彼得的工作进度,以防止他偷懒原创 2007-11-25 11:54:00 · 936 阅读 · 0 评论 -
面向接口编程理解(转摘)
导读: key words :面向接口编程 面向对象设计里有一点大家已基本形成共识,就是面向接口编程,我想大多数人对这个是没有什么觉得需要怀疑的。 问题是在实际的项目开发中我们是怎么体现的呢? 难道就是每一个实现都提供一个接口就了事了?反过来说,你有时候有没有觉得接口是多余的事? 又或者,你仅仅是觉得现在类似spring这样的框架已习惯用接口这种方式而心存当然。 设计模式解析里提到原创 2008-02-25 16:33:00 · 1338 阅读 · 0 评论 -
面向接口编程VS《倚天屠龙记》里张三丰教无忌打太极
搞笑哈,只细想想,编程和太极怎么能联系在一起了,是八秆子也打不着的哈! 昨天看了一篇文章是关于面向接口编程的文章,颇有心得,其实在今天中国IT软件行业的盛行,程序员们突飞猛涨,真正算的上程序员的又有几个(程序员指的是初级到高级到设计)。张口闭口面向对象,键盘上敲出来的还是结构化语言,除了不知从哪下来了一个数据库访问框架是面向对象思想写的,其它的模块几呼全是结原创 2008-02-25 17:37:00 · 3405 阅读 · 0 评论 -
面向对象的几大原则
1) 单一职责原则 (The Single Responsiblity Principle,简称SRP) 2) 开放-封闭原则 (The Open-Close Principle,简称OCP) 3) Liskov 替换原则(The Liskov Substitution Principle,简称LSP) 4) 依赖倒置原则(The Dependency Inversi原创 2008-09-03 10:45:00 · 901 阅读 · 0 评论 -
61条面向对象设计的经验原则
摘抄自《OOD 启思录》--Arthur J.Riel 著 鲍志云 译 “你不必严格遵守这些原则,违背它们也不会被处以宗教刑罚。但你应当把这些原则看成警铃,若违背了其中的一条,那么警铃就会响起。” “你不必严格遵守这些原则,违背它们也不会被处以宗教刑罚。但你应当把这些原则看成警铃,若违背了其中的一条,那么警铃就会响起。” ----------Arthur J.Riel (1)所有数原创 2008-09-22 14:34:00 · 844 阅读 · 0 评论 -
Liskov替换原则--LSP
一、LSP简介(LSP--Liskov Substitution Principle):定义:如果对于类型S的每一个对象o1,都有一个类型T的对象o2,使对于任意用类型T定义的程序P,将o2替换为o1,P的行为保持不变,则称S为T的一个子类型。子类型必须能够替换它的基类型。LSP又称里氏替换原则。对于这个原则,通俗一些的理解就是,父类的方法都要在子类中实现或者重写。 二、举原创 2008-12-08 15:22:00 · 1045 阅读 · 0 评论 -
(转)程序员眼中的UML (2)
在实际工作中,大部分程序员很少接触到需求分析,即使有需求分析,也是草草了事,没有用正规的方式来表达,所以一般程序员使用用例图的机会是不多的。但是却又常常在各种媒体上看见用例图,于是对一种常常出现,自己又不太熟悉的技术,会产生恐惧。如果说对MDA或者CORBA这样的技术产生恐惧还是值得的话,对用例图产生恐惧是非常不值的。因为MDA和CORBA这样的技术也许要花上半年的时间才能够初步了解,而克服用转载 2010-01-12 13:55:00 · 1278 阅读 · 0 评论