设计模式
熊青峰
带着一颗发现问题的心
展开
-
老生常谈:装饰者模式
网站新闻模块中应用装饰模式 本人现今对设计模式特别感兴趣,因为它的功能实在是太吸引人啦.设计模式一般说来是为了增加系统的可扩展性及维护性。在一般的门户网站中都会有新闻展示这个功能模块。 具体案例:有存储在数据库中的新闻,有存储在XML文件中的新闻(一般都是推荐新闻,内容比较少)。 在没有接触设计模式时,都是针对具体实现编程,读取数据库新闻时直接写一转载 2011-11-10 19:34:33 · 702 阅读 · 3 评论 -
接口和抽象类
在学习面向对象的时候经常遇到接口和抽象类,那么他们之间有什么区别呢?什么是接口?接口是包含一组虚方法的抽象类型,其中每一种方法都有其名称、参数和返回值。接口方法不能包含任何实现,CLR允许接口可以包含事件、属性、索引器、静态方法、静态字段、静态构造函数以及常数。但是注意:C#中不能包含任何静态成员。一个类可以实现多个接口,当一个类继承某个接口时,它不仅要实现该接口定义的所有方法,还要实现该原创 2011-12-18 20:29:07 · 669 阅读 · 2 评论 -
UML 理解用例
UML中用例图的作用是从客户的角度分析系统的需求,分析系统要达到什么样的目的。这些天参考了一本叫做《大象Think in UML》的书,书中提到“用例驱动”,那怎么理解呢。首先来说用例,在需求中什么是用例呢,用例是与参业者交互,并且给参与者提供可观测的有意义的一系列活动的集合。也就是用例是参与者利用系统要达到的目标。从用例中可以提取出来特定的事情,特定的参与者,规则,动作。在细化的过程原创 2012-01-20 10:28:18 · 748 阅读 · 0 评论 -
深入设计模式之二:装饰者模式
在讲策略模式的时候,文章着重讲了“面向接口编程”,面向接口编程的好处是可以把客户的行为通过接口在外部的封装类中实现,从而提高了程序弹性。 今天说下“装饰者模式”,首先看下官方定义: 动态的将职责附加在对象上,若想扩展功能,装饰者提供了比继承更有弹性的替代方案 装饰者模式非常好的实现了一个设计原则:类应该对扩展开放,对修改关闭。他告诉我们:运行时扩原创 2012-07-31 19:59:48 · 877 阅读 · 13 评论 -
深入设计模式之一:策略模式
合作开发的这段时间,看了不少设计模式,这次分享下我对几个模式的理解,这次说说“策略模式” 官方定义:策略模式定义了算法族,分别封装起来,使算法之间可以相互替换,使算法族独立于使用它的客户。 如何理解呢?定义里说到的“封装算法”,这我们可以理解成封装变化,这是设计模式里重要的原则之一。把容易变化的部分抽取出来,以便以后需求变化时修改此部分,而不会影响不原创 2012-07-30 21:12:56 · 1065 阅读 · 13 评论 -
用C#中的委托和事件简单实现观察者模式
天轰川视频在20多集的时候提到了委托,第一次学楚广明C#的时候对这块了解不深,这次把这块好好了解了下,算对这块有个入门级的认识。 首先看官方对委托的定义(出自MSDN):委托是一种定义方法签名的类型,用于将方法作为参数传递给其他方法。事件处理程序就是通过委托调用的方法。 我的理解:委托封装了方法,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递。原创 2012-09-03 15:41:51 · 3836 阅读 · 5 评论 -
如何从用例图过渡到类图
近段时间做项目,总结了下如何用例图过渡到类图:用例图可以表示系统要完成的功能,要干哪些事情;类图表示系统有哪些类,哪些方法,从类图可以了解系统的结构和组成,确定用例图比较简单,比如一个系统的登录就是可以看作一个用例。先看一个最简单的用例,拿一般系统的登录来说: 管理员输入用户密码登录系统。那根据这个用例如何确定有哪些类呢? 应该有这样的两种思路: 第一种,从原创 2013-01-02 19:03:02 · 10794 阅读 · 2 评论 -
软考复习--设计模式总结
总结进行中....原创 2013-04-14 21:59:36 · 1821 阅读 · 5 评论 -
用java观察者模式解耦经典三层架构
三层架构是一个非常经典的架构模式,根据系统的职责不同,将系统分成了表现层,逻辑层和数据访问层,并且配合数据实体进行数据传输,可以大大的封装性和复用性。经典的三层架构图:我们再深入到架构图内部,看看具体的类图,用简单的登陆举例吧:这里通过LoginUI,调用了LoginLogService和LoginVerificationService两个类,通过类图可以看得出,U层和原创 2014-07-28 15:05:25 · 16362 阅读 · 12 评论