随笔分类 -  设计模式

设计模式与原则
摘要:设计模式介绍 模式:每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。 “模式”这个词是不局限于软件开发行业的,它几乎无处不在,它其实就是一种经验的积累,就象大多数人的教育经历都是从小学到初中再到高中再到大学,这也是一种模式,是中国的教育模式;现在越来越火的出国热,也是另一种模式,海外留学模式。因为GOF的《设计模式:可复用面向对象软件的基础》一书描述的23种经典设计模式,奠定了模式在软件行业的地位,从此人们提到“设计模式”就是默指“面向对象设计模式”,但是如前文所述,模式绝对不局限于软件行业,即使在软件行业,也不局限于GOF描述的23种设计模式,例如最著名的M.. 阅读全文
posted @ 2014-04-07 17:40 飞鸟快跑 阅读(314) 评论(0) 推荐(0)
单态模式
摘要:单例模式最初的定义出现于《设计模式》(艾迪生维斯理, 1994):“保证一个类仅有一个实例,并提供一个访问它的全局访问点。”Java中单例模式定义:“一个类有且仅有一个实例,并且自行实例化向整个系统提供。” 对于系统中的某些类来说,只有一个实例很重要,例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;一个系统只能有一个窗口管理器或文件系统;一个系统只能有一个计时工具或ID(序号)生成器。如在Windows中就只能打开一个任务管理器。如果不使用机制对窗口对象进行唯一化,将弹出多个窗口,如果这些窗口显示的内容完全一致,则是重复对象,浪费内存资源;如果这些窗口显示的内容不一致,则. 阅读全文
posted @ 2014-04-07 14:17 飞鸟快跑 阅读(351) 评论(0) 推荐(0)
工厂模式和策略模式区别
摘要:先上代码:定义一个抽象类//抽象类abstract class AbsClass{ //抽象方法:提供一些列的算法操作 public abstract void acceptCash(string org);} //继承自抽象类class A:AbsClass{ //具体方法:提供一些列的算法操作 public override double acceptCash(string org) { Console.WriterLine("A类方法"); }} //继承自抽象类class B:AbsClass{ //具体方法:提供一些列的算法操作 ... 阅读全文
posted @ 2014-03-31 18:36 飞鸟快跑 阅读(1039) 评论(0) 推荐(0)
工厂模式
摘要:抽象类获取对象的方式: * 1). 创建其子类对象 * 2). 有的抽象类中提供了静态工厂方法来获取抽象类的实例. 工厂模式主要是为创建对象提供了接口。分为三类:1. 简单工厂模式(Simple Factory) 2. 工厂方法模式(Factory Method) 3. 抽象工厂模式(Abstract Factory) 这三种模式从上到下逐步抽象,并且更具一般性。还有一种分类法,就是将简单工厂模式看为工厂方法模式的一种特例,两个归为一类。下面是使用工厂模式的两种情况:1.在编码时不能预见需要创建哪种类的实例。2.系统不应依赖于产品类实例如何被创建、组合和表达的细节1. 简单工厂模式简单工厂模式 阅读全文
posted @ 2014-03-31 18:20 飞鸟快跑 阅读(298) 评论(0) 推荐(0)
架构
摘要:OOA Object-Oriented Analysis(面向对象架构)架构是由Object组成的,而不是ClassSOA Service-Oriented Architecture 面向服务架构 服务就是运行后的功能(即终端业务,这种架构业务人员可以参与编程)ROA Relation-Oriented Architecture 面向关系架构 关系,是一种数学概念,架构就可计算。(维护阶段)架构独立于语言,一种架构可以用于各种语言。架构是view,对一种架构,可以从各个角度看它。4+1逻辑视图功能:机制视图 组件开发视图(Development View)程序设计,Class及其关系过程视图( 阅读全文
posted @ 2014-03-26 23:20 飞鸟快跑 阅读(353) 评论(0) 推荐(0)
策略模式
摘要:模拟鸭子Joe是一名OO程序员,他为一家开发模拟鸭子池塘游戏的公司工作,该公司的主要产品是一种可以模拟展示多种会游泳和呷呷叫的鸭子的游戏。这个游戏是使用标准的面向对象技术开发的,系统里所有鸭子都继承于Duck基类,系统的核心类图如下:如图所示,在Duck基类里实现了公共的quack()和swim()方法,而MallardDuck和RedheadDuck可以分别覆盖实现自己的display()方法,这样即重用了公共的部分,又支持不同子类的个性化扩展。从目前的情况看,这是一个很好的设计,哈!但是,商场如战场,不进则退。Joe的公司最近的日子不好过,盗版泛滥,再加上竞争对手的围追堵劫,已经拖欠好几个 阅读全文
posted @ 2014-03-26 10:31 飞鸟快跑 阅读(377) 评论(0) 推荐(0)