篇一 :设计模式心得体会

设计模式心得体会

7月初的一个周末,准确的说应该是7月1号周六,在网上看到一本《大话设计模式》的书,而且看到很多很好的评论,于是乎,下载了电子书看看,一下子看了几章之后,对设计模式有了个了解,于是继续上网搜些其他资料,进一步了解设计模式。。。最终结论:设计模式是个好东西,具体怎么好,一两句话是无法概括的,也是从那天起,我就决定学习设计模式,于是就看《大话设计模式》,至七月十多号,大概看了一百多页后,感觉有点难,有点看不下去的感觉,于是上网找其他的好方法,无意间发现了李建忠老师的《c#设计模式纵横谈》系列讲座,微软的web cast课程,主要讲解gof的23个设计模式,每个一讲,加上一头一尾,共25讲,试听了一节课后,感觉很有用,于是就抽时间去边听课边看书,并在我的博客里写下笔记,依赖加深印象,二来可以督促我的进度。。。

三个月以来,总算把设计模式学完一遍了,原计划是两个月学完(一星期三个模式),由于。。。计划两个月学完实际花了三个月,感触多多,收获多多——对c#语言有了更进一步的认识,对oo的思想有了更全面的了解。。。 下一步在设计模式方面的计划:巩固并运用设计模式,巩固:把《大话设计模式》,《设计模式》,《设计模式——可复用的面向对象基础》,《敏捷软件开发:原则、模式与实践》这些书再结合起来系统的看一看,当然还会去买一些我手头上没有的关于设计模式的书;运用:部门前几天也提倡用c#来改版vb程序,我想这是一个很好的平台,正好有机会把理论的东西在实际中应用,理论加实际——唯一的学习方法。。。

下面对各个模式再简单总结一下:

1、创建型模式:

singleton:解决的是实例化对象的个数的问题,比如抽象工厂中的工厂、对象池等,除了singleton之外,其他创建型模式解决的都是 new 所带来的耦合关系。

abstract factory:创建一系列相互依赖对象,并能在运行时改变系列。 factory method:创建单个对象,在abstract factory有使用到。 prototype:通过拷贝原型来创建新的对象。

…… …… 余下全文

篇二 :学习设计模式的一些感想

设计模式在编程中的应用

我们在发现问题到解决问题这个过程中,常会发现很多问题是重复出现的,或是某个问题的变体,外在不同,而本质相同,建筑学上如是,软件行业也是,这些问题的本质就是模式。有人说,设计模式并不是一日两日能够理解的,当编程经验到了一定程度,便迫切的需要设计模式来完善自己的代码、优雅自己的设计,以及减少重复编码,这句话也是蛮有道理的,以自己的亲身经历来说,当刚开始编程时,没有一点设计理念,等到开设这门课以后再细读理解,把里面的思想带到自己的项目中,就会觉得有很多值得深思的地方。本文以我在以往项目中遇到的三个编码问题来谈谈学习设计模式的必要性。

一、代码量激增、程序可维护性面临挑战

我想这样的代码我们从学习C语言就开始接触,现在很多地方还在用,以后工作可能用的更多但是,大家都写的东西,我们自己的优势在哪里呢?

1.过多的if?else判断

if (type == 1) {

//调用获取信息方法1

} else if (type == 2) {

//调用获取信息方法2

??.

} else {

//调用获取信息方法7

}

这是我在做一个项目中看到的一段代码,那个条件判断非常之长,有7个条件分支,而且其他有些地方也有根据类型来做不同处理的情况。

2. 多次载入资源(例如配置文件的读取),引起资源损耗

public static String getProperty(String propKey) throws Exception ...{

Properties prop = new Properties();

InputStream propConfFile = Util.class.getClassLoader()

.getResourceAsStream("configure.properties");

…… …… 余下全文

篇三 :设计模式学习总结

设计模式学习总结

引子

刚开始学习设计模式的时候,感到这些模式真的非常抽象。今年下半年以来,随着我们组工作重点的转移,以及我在小组中角色的变化,我开始有条件提出自己对新系统的设计想法。在设计过程中,我发现了很多设计模式的用处,也确实应用了很多设计模式,这让我越来越感到设计模式的重要性,因此我写了这十余篇专门介绍设计模式的文章,作为我的学习笔记。 《设计模式——可复用的面向对象软件的基础》(有趣的是,梅宏一再在组会上强调应该译成重用)中介绍了一共23种设计模式,我一共写了19个设计模式(其中三个和在一篇文章中),余下四个,考虑到该模式的应用范围我就没有介绍。在写这些文章时,其中的很多例子都是我在实践中提炼出来的,当然也有很大一部分是《设计模式》中的例子。不过,这四个人(四人团)生活的年代里现在已经很远了,所以它们的例子也很古老。 让我们更加设计模式

设计模式是个好东西,它给出了很多设计中的技巧与思路,对于很多优秀的设计,它加以总结与提炼。设计模式并非四人团拍脑瓜想出来的,而是他们搜集了其他人优秀的设计,加以整理出来的,他们不是这些模式的创造者,仅仅是整理者。

应用设计模式会给我们带来很多好处:软件将变得更加灵活,模块之间的耦合度将会降低,效率会提升,开销会减少。更重要的,设计模式就好像美声唱法中的花腔,让你的设计更加漂亮。总的来说,设计模式似乎将软件设计提升到艺术的层次。

设计模式已经被广泛的应用了,在现在很多的图形界面框架都使用了MVC模式,大量跌代器模式的应用,彻底改变了我们对集合的操作方式。不仅如此,应用了设计模式的设计,往往被看成为优秀的设计。这是因为,这些设计模式都是久经考验的。

模式不是模型

在学习和使用设计模式的时候,往往出现一个非常严重的误区,那就是设计模式必须严格地遵守,不能修改。但是设计模式不是设计模型,并非一成不变。正相反,设计模式中最核心的要素并非设计的结构,而是设计的思想。只有掌握住设计模式的核心思想,才能正确、灵活的应用设计模式,否则再怎么使用设计模式,也不过是生搬硬套。

…… …… 余下全文

篇四 :Java设计模式学习心得

Java设计模式学习心得

阅读次数: 1584次 发布时间: 20xx-04-10 14:52:13发布人: 网络转载

来源: 网络转载

整个设计模式贯穿一个原理:面对介面编程,而不是面对实现,(面向物件编程应该改爲面向介面编程)。目标原则是:降低耦合,增强灵活性。

一、创建模式

1. 设计模式之Factory(工厂方法和抽象工厂)

使用工厂模式就象使用new一样频繁.

2. 设计模式之Prototype(原型)

用原型实例指定创建物件的种类,並且通过拷贝这些原型创建新的物件。

3. 设计模式之Builder

汽车由车轮 方向盘 发动机很多部件组成,同时,将这些部件组装成汽车也是一件複杂的工作,Builder模式就是将这两种情况分开进行。

4. 设计模式之Singleton(单态)

保證一个类只有一个实例,並提供一个访问它的全局访问点

二、结构模式

1. 设计模式之Facade

可扩展的使用JDBC针对不同的资料库编程,Facade提供了一种灵活的实现。

2. 设计模式之Proxy

以Jive爲例,剖析代理模式在用户级别授权机制上的应用

3. 设计模式之Adapter

使用类再生的两个方式:组合(new)和继承(extends),这个已经在"thinking in java"中提到过。

4. 设计模式之Composite

就是将类用树形结构组合成一个单位。你向别人介绍你是某单位,你是单位元元中的一个元素,别人和你做买卖,相当於和单位做买卖。文章中还对Jive再进行了剖析。

5. 设计模式之Decorator

Decorator是个油漆工,给你的东东的外表刷上美丽的顔色。

6. 设计模式之Bridge

…… …… 余下全文

篇五 :大话设计模式学习总结

C#大话设计模式学习总结

一、工厂模式

面向对象的三个特性:封装,继承和多态

1.封装

Class Operate

{

   private double _numberA;

   private double _numberB;

  

   public double NumberA

   {

      get{return _numberA;}

      set{_numberA = value;}

   }

   public double _numberB

   {

      get{return _numberB;}

      set{_numberB = value;}

   }

}

2.继承

//父类

Class Operation

{

   private double _numberA;

   private double _numberB;

  

   public double NumberA

   {

      get{return _numberA;}

      set{_numberA = value;}

…… …… 余下全文

篇六 :Java设计模式学习心得

Java设计模式学习心得

整个设计模式贯穿一个原理:面对介面编程,而不是面对实现,(面向物件编程应该改爲面向介面编程)。目标原则是:降低耦合,增强灵活性。 一、创建模式1. 设计模式之Factory(工厂方法和抽象工厂) 使用工厂模式就象使用new一样频繁.

2. 设计模式之Prototype(原型) 用原型实例指定创建物件的种类,並且通过拷贝这些原型创建新的物件。3. 设计模式之

Builder 汽车由车轮 方向盘 发动机很多部件组成,同时,将这些部件组装成汽车也是一件複杂的工作,Builder模式就是将这两种情况分开进行。4. 设计模式之Singleton(单态) 保證一个类只有一个实例,並提供一个访问它的全局访问点

二、结构模式

1. 设计模式之Facade 可扩展的使用JDBC针对不同的资料库编程,Facade提供了一种灵活的实现。

2. 设计模式之Proxy 以Jive爲例,剖析代理模式在用户级别授权机制上的应用

3. 设计模式之Adapter 使用类再生的两个方式:组合

(new)和继承(extends),这个已经在"thinking in java"中提到过。4. 设计模式之Composite 就是将类用树形结构组合成一个单位。你向别人介绍你是某单位,你是单位元元中的一个元素,别人和你做买卖,相当於和单位做买卖。文章中还对Jive再进行了剖析。

5. 设计模式之Decorator Decorator是个油漆工,给你的东东的外表刷上美丽的顔色。

6. 设计模式之Bridge 将"牛郎织女"分开(本应在一起,分开他们,形成两个介面),在他们之间搭建一个桥(动态的结合)

7. 设计模式之Flyweight 提供Java运行性能,降低小而大量重复的类的开销。

…… …… 余下全文

篇七 :设计模式学习总结

抽象工厂者模式

类图结构

优点:

1、 封装性,每个产品的实现类不是高层模块关心的,它只关心接口、抽象表示,它不关心对象是如何被创建出来的,对象的创建是由工厂类负责的,因此只要知道该产品的工厂类是谁,就能够创建出一个需要的对象,省时省力;

2、 产品族内的约束为非公开状态。产品族内的约束条件对调用工厂类的高层模块来说是透明的,它不需要知道其中的约束,它只关心具体的产品就可以,产品族内的约束实在工厂内实现的。

缺点:

   抽象工厂最大的缺点就是产品族扩展非常困难。以上述类图为例,如果要增加一个产品C,即产品族由原来的2个增加到3个,这时我们就要将抽象类AbstractCreator增加一个方法createProductC(),然后两个实现类都要修改,这就违反了开闭原则,而且抽象类和接口是一个契约,改变契约,所有与契约相关的代码都要修改,那么这段代码就成了有毒代码,会对整个程序带来危害。

实现要点

在抽象工厂模式中,选用哪种产品族的问题,需要采用工厂方法或简单工厂模式来配合解决。

抽象工厂模式和工厂方法模式一样,都把对象的创建延迟到了他的子类中。

具体的工厂类可以设计成单例类,他只向外界提供自己唯一的实例。

与其他工厂模式的联系和异同:

抽象工厂模式中的具体工厂负责生产一个产品族的产品。而产品族的增加只需要增加与其对应的具体工厂。

3种工厂模式都是创建型模式,都是创建对象的,但都把产品具体创建的过程给隐藏了。

工厂方法模式是针对一种产品结构,而抽象工厂模式是针对多种产品结构。

适用性:

在以下情况下应当考虑使用抽象工厂模式:

一个系统不应当依赖于产品类实例如何被创建、组合和表达的细节,这对于所有形态的工厂模式都是重要的。

这个系统有多于一个的产品族,而系统只消费其中某一产品族。

同属于同一个产品族的产品是在一起使用的,这一约束必须在系统的设计中体现出来。

…… …… 余下全文

篇八 :设计模式学习总结第一部分


目录

一、工厂模式:Factory Pattern.. 3

1.简单工厂模式 Simple Factory.. 3

2. 工厂方法模式 Factory Method.. 3

3. 抽象工厂模式 Abstract Factory.. 3

二、单例模式 Singleton Pattern.. 3

三、建造者模式 Builder Pattern.. 5

四、原型模式 Prototype Pattern.. 6

五、适配器模式 Adapter Pattern.. 7

六、桥梁模式 Bridge Pattern.. 7

参看资料:... 8


一、工厂模式:Factory Pattern

目的:将创建对象的过程屏蔽起来,以达到灵活的目的。

1.简单工厂模式 Simple Factory

由组成三部分:

l  工厂类 Factory

l  抽象产品类 Abstract Product

l  具体产品类 Concrete Product

2. 工厂方法模式 Factory Method

由四部分组成:

l  抽象工厂类 Abstract Factory

l  具体工厂类 Concrete Factory

l  抽象产品类 Abstract Product

l  具体产品类 Concrete Product

3. 抽象工厂模式 Abstract Factory

由四部分组成:

l  抽象工厂类 Abstract Factory

l  具体工厂类 Concrete Factory

l  抽象产品类 Abstract Product

l  具体产品类 Concrete Product

工厂方法模式与抽象工厂模式的区别:

…… …… 余下全文