随笔分类 -  设计模式

摘要:代理这个词大家肯定已经非常熟悉,因为现实中接触的很多,其实现实中的东西恰恰可以非常形象和直观地反映出模式的抽象过程以及本质。现在房子不是吵得热火朝天吗?我们就以房子为例,来拨开代理的面纱。 假设你有一套房子要卖,一种方法是你直接去网上发布出售信息,然后直接带要买房子的人来看房子、过户等一直到房子卖出去,但是可能你很忙,你没有时间去处理这些事情,所以你可以去找中介,让中介帮你处理这些琐碎事情,中介实... 阅读全文
posted @ 2010-02-05 17:48 Silver.Lee 阅读(7724) 评论(2) 推荐(6)
摘要:前言Robert C. Martin氏为我们总结了在面向对象的设计(OOD)中应该遵循的原则,这些原则被称为“Principles of OOD”,关于“Principles of OOD”的相关文章可以从Object Menter得到。本文介绍“Principles of OOD”中的单一职责原则:Single Respon... 阅读全文
posted @ 2010-02-05 12:19 Silver.Lee 阅读(997) 评论(0) 推荐(0)
摘要:表现层:PetShop.Web.CategoryDataProxypublic static CategoryInfo GetCategory(string categoryId) { Category category = new Category(); if (!enableCaching)//页面层判断缓存逻辑 return category.GetCategory(categoryId);... 阅读全文
posted @ 2009-12-19 09:36 Silver.Lee 阅读(383) 评论(0) 推荐(0)
摘要:一、模式概述 从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简 单实用的模式,可以理解为是不同工厂模式的一个特殊实现,学习了此模式可以为后面的很多中模式打下基础。那好,我们就来了解下什么是简单工厂模式... 阅读全文
posted @ 2009-11-21 17:31 Silver.Lee 阅读(1030) 评论(1) 推荐(0)
摘要:原型模式(Prototype Pattern)也是一种创建型模式,它关注的是大量相似对象的创建问题。我们经常会遇到这样的情况:在系统中要创建大量的对象,这些对象之间具有几乎完全相同的功能,只是在细节上有一点儿差别。  这 样的情形经常遇到。三国系列游戏是我最喜欢的游戏系列之一。你有没有注意到那里边上百位英雄的头像基本上很相似?你仔细区分就会发现,虽然每个人都不同, 但基本上只具有几种脸型:长方的、... 阅读全文
posted @ 2009-11-21 17:10 Silver.Lee 阅读(520) 评论(0) 推荐(0)
摘要:(转)创建者模式作用可以概括为如下两点:1.封装创建逻辑,绝不仅仅是new一个对象那么简单。2.封装创建逻辑变化,客户代码尽量不修改,或尽量少修改。使用创建者模式是为了提高系统的可维护性和可扩展性,提高应对需求变化的能力! -- 这两端和我的文章几乎一字不差,我没看过那个webcast,也实在是太巧了. 我google了一下“创建者模式”原来我这篇文章排在第一 ;p 以下是... 阅读全文
posted @ 2009-11-21 10:31 Silver.Lee 阅读(355) 评论(0) 推荐(0)
摘要:略 阅读全文
posted @ 2009-11-21 09:53 Silver.Lee 阅读(148) 评论(0) 推荐(0)
摘要:略 阅读全文
posted @ 2009-11-21 09:53 Silver.Lee 阅读(156) 评论(0) 推荐(0)
摘要:在使用UML进行建模的时候,有很多工具可以供设计人员使用,其中比较流行的是ROSE、Togther和Visio。本节首先讲解ROSE的用法。(略) 阅读全文
posted @ 2009-11-21 09:52 Silver.Lee 阅读(423) 评论(0) 推荐(0)
摘要:作为一种建模语言,UML的定义包括UML语义和UML表示法两个部分。 l UML语义:描述基于UML的精确元模型定义。 l UML表示法:定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。这些图形符号和文字所表达的是应用级的模型,在语义上它是UML元模型的实例。 标准建模语言UML可以由下列5类图来定义。 l 用例图:从用户角度描述系统功能,并指出各功能的... 阅读全文
posted @ 2009-11-21 09:39 Silver.Lee 阅读(387) 评论(0) 推荐(0)
摘要:为了交流,人类发明了语言,这样当指着一条狗的时候,没有人会把它叫做猫。试想一下,如果有人把白粉笔定义为白色,有人把白粉笔定义为黑色,双方还怎么交流啊?UML就是这样一种语言,为软件开发人员之间的交流提供了一种高效的工具。 在对设计模式有了初步的了解之后,小巩看到很多书籍都使用UML语言来描述设计模式的相关问题,而小巩对于UML还不太熟悉,心里想:“看来还得再学学UML,当然也要从UML... 阅读全文
posted @ 2009-11-21 09:34 Silver.Lee 阅读(1037) 评论(0) 推荐(0)
摘要:这里把小巩收集到的一些比较好的资料列出来,供读者进行学习。 (1)学习设计模式最重要的著作:GoF的《设计模式》。 (2)板里桥人的系列文章:http://www.jdon.com/designpatterns/index.htm。 (3)林信良的系列文章: http://caterpillar.onlyfun.net/Gossip/DesignPattern/DesignPattern.htm。... 阅读全文
posted @ 2009-11-21 09:26 Silver.Lee 阅读(198) 评论(0) 推荐(0)
摘要:本书首先对GoF总结出来的23种设计模式进行整体介绍,让读者大体了解设计模式的分类。在对具体的设计模式进行讲解前,先讲解了UML语言和一些建模工具的使用方法,目的是使读者先了解工具的使用,在后面的讲解中能够对一些图形的表示达成共识。 接着按照创建型模式、结构型模式和行为型模式的分类,对具体的设计模式进行讲解,目的是使读者在学习某一类设计模式时,能够对这个分类下的所有设计模式都有所了解,并能够进行对... 阅读全文
posted @ 2009-11-21 09:25 Silver.Lee 阅读(212) 评论(0) 推荐(0)
摘要:在了解了设计模式的历史和分类后,应该如何学习设计模式呢?在学习设计模式之前,读者一定要树立一种意识,那就是:设计模式并不只是一种方法和技术,它更是一种思想、一个方法论。它和具体的语言没有关系,学习设计模式最主要的目的就是要建立面向对象的思想,尽可能地面向接口编程、低耦合、高内聚,使你设计的程序尽可能地复用。有些软件开发人员,在程序设计时,总想着往某个设计模式上套,其实这样是不对的,并没有真正掌握设... 阅读全文
posted @ 2009-11-20 18:01 Silver.Lee 阅读(437) 评论(0) 推荐(0)
摘要:在了解完设计模式的历史后,小巩又了解了设计模式的分类。这些模式大体上分为3类,分别从对象的创建、对象的结构及对象的行为这3个方面来总结软件开发人员在设计方面的经验。1.创建型模式前面讲过,社会化的分工越来越细,自然在软件设计方面也是如此,因此对象的创建和对象的使用分开也就成为了必然趋势。因为对象的创建会消耗掉系统的很多资源,所以单独对对象的创建进行研究,从而能够高效地创建对象就是创建型模式要探讨的... 阅读全文
posted @ 2009-11-20 18:00 Silver.Lee 阅读(504) 评论(0) 推荐(1)
摘要:小巩听完大拿的话,马上上网找了一些设计模式的资料,逐渐对设计模式的历史有了了解。对于大多数经历过软件开发的人来说,都明白这样一个道理:软件的质量在代码编写出来以前,很难进行验证,从而导致软件开发很少有按照项目进度准时完成的。同样的道理在建筑行业也存在:在房子盖起来供人们使用之前,人们很难感受到这个房子设计的好与坏,住着是否舒服,是否满足房子主人的审美观。为了探索建筑师的建筑设计是否满足人们的需要,... 阅读全文
posted @ 2009-11-20 17:57 Silver.Lee 阅读(173) 评论(0) 推荐(0)
摘要:在建筑工地上,经常看到的是建筑工人在盖房子,却看不到制砖工人在切制砖瓦;在汽车厂房里,经常看到汽车工人在组装汽车,却看不到有工人在制造轮胎。社会化的分工越来越细,这就是当今社会的运转模式,同样,在软件开发过程中,分工也越来越细,有人专门做UI设计,有人专门做系统设计,有人专门做代码编写,有人专门做测试,这就是软件开发的模式。分工越细,从事某项分工的人员就越专业,比如程序设计,由于它是把人类思维具体... 阅读全文
posted @ 2009-11-20 17:55 Silver.Lee 阅读(265) 评论(0) 推荐(0)
摘要:模式大体上分为3类,分别从对象的创建、对象的结构和对象的行为这3个方面来总结软件开发人员在设计方面的经验。(1)创建型模式。l 简单工厂模式(Simple Factory):定义一个具体的工厂类来负责创建一些类的实例,而这些被创建的类都应该有一个共同的父类,这样就可以实现面向抽象而不是面向具体编程。客户类和工厂类分开,客户类任何时候需要某种产品,只需向工厂请求即可,客户类无需修改就可以接纳新产品。... 阅读全文
posted @ 2009-11-20 17:42 Silver.Lee 阅读(254) 评论(0) 推荐(0)
摘要:以前小巩总是搞不懂Java中接口和抽象类的区别,该用接口的用抽象类,该用抽象类的用接口,趁此机会,小巩也重新对接口和抽象类进行了学习。从前面对面向对象的设计原则的讲解,读者可以了解到,其实所有的设计原则和设计模式都离不开抽象,因为只有抽象才能实现上述设计原则和设计模式。在Java中,针对抽象有两种实现方式,一种是接口,一种是抽象类,有很多读者也因此对这两种实现方式比较困惑,到底是使用接口,还是使用... 阅读全文
posted @ 2009-11-20 17:38 Silver.Lee 阅读(1703) 评论(0) 推荐(0)
摘要:1.单一职责原则(SRP)单一职责原则的核心思想就是:系统中的每一个对象都应该只有一个单独的职责,而所有对象所关注的就是自身职责的完成。它的英文缩写是SRP,英文全称是Single Responsibility Principle。其实单一职责原则的意思就是开发人员经常说的“高内聚、低耦合”。也就是说,每个类应该只有一个职责,对外只能提供一种功能,而引起类变化的原因应该只有... 阅读全文
posted @ 2009-11-20 17:29 Silver.Lee 阅读(360) 评论(0) 推荐(0)