天天看点

如何使用设计模式——qq交流群讨论纪实

trufun  9:35:33

大家好,由于下周清明节放假,周二的课程临时提前到今天

just low-key(1)  9:38:05

  能不能讲,uml 设计

just low-key(1)  9:38:13

 类图和序列图。

trufun  9:44:15

上堂课我们讨论了设计模式的定义、四要素、分类,并讲出了设计模式的难点是第二要素

trufun  9:47:17

如何在设计中使用设计模式,首先要熟悉常见的设计模式

trufun  9:50:26

1.将各种设计模式烂熟于心。

2.研究设计模式的关联性

lion()  9:53:36

创建类型、行为类型、结构类型

lion()  9:53:56

老师给分别讲讲吧。

===============================================

    现在定制Trufun企业内训或者购买Trufun系列产品,

    可获赠苹果iPad或者iPhone 4S产品,先到先得!!

------详情访问www.trufun.net咨询了解-----

===============================================

trufun  9:54:45

看看上堂的记录

trufun  9:54:10

就像骑自行车一样,学会了,几年不用也不会忘,使设计模式的使用成为自然而然的事情

trufun  9:57:03

其次,要找到设计模式应用的对象

trufun  10:00:12

这个对象就是我们UML课程中讲过实体对象,这是从实际需求中来的,它是使用设计模式基本条件

trufun  10:07:23

这里有一个概念叫粒度,实际上是指设计模式应用对象的大小

trufun  10:11:09

粒度的把握取决于你研究的问题大小,与封装、依赖关系、灵活性、性能、演化、复用有关

trufun  10:14:35

比如门面模式可以应用到系统,子系统的封装,而命令模式可以用到一个字符对象

咖啡刀()  10:16:21

这个粒度的控制

咖啡刀()  10:16:35

是否有相对经验性的一些建议

咖啡刀()  10:16:58

或者是否能提供个实例性的介绍呢?

trufun  10:16:46

所以,选择设计模式的应用对象,没有一个标准,是非常灵活的,也是设计水平的体现

XML Trufun()  10:17:27

如何把握粒度大小?

咖啡刀()  10:17:27

然后根据实例来说说这个粒度的切分

trufun  10:17:27

后面讲

咖啡刀()  10:17:39

哦 那很期待 嘿嘿

咖啡刀()  10:18:03

嗯啦 这个粒度的大小是没标准,不过老师你可以根据你的经验来讲讲吧

trufun  10:19:19

这些实体对象的来源,我们在以前的UML分析课里已经讲过,不在赘述

lion()  10:19:58

老师可以说说架构模式吗?

太阳海<>  10:20:14

我也想听

lion()  10:20:26

比如分层、面向切面、soa之类的

trufun  10:20:30

那是另外一门课

trufun  10:20:52

感兴趣的人少

trufun  10:20:03

这些实体对象的来源,我们在以前的UML分析课里已经讲过,不在赘述

lion()  10:21:16

我和太阳海都感兴趣,

trufun  10:22:02

好,以后有机会讲

trufun  10:24:44

找到实体对象以后,要找辅助对象,这是设计模式应用的关键

trufun  10:27:42

辅助对象主要是抽象类,接口,是需求里面没有的

trufun  10:30:21

怎样建立辅助对象,完全取决你选择的设计模式

trufun  10:31:49

怎样建立辅助对象,完全取决你选择的设计模式

梦想成真()  10:32:15

麻烦打扰问一下,是先确定辅助对象再选模式呢还是先确定模式再找辅助对象

trufun  10:33:43

各种设计模式的UML图中已经定义了辅助对象,上网一查就能找到

trufun  10:34:07

先找模式

梦想成真()  10:34:35

哦,明白,谢谢!

trufun  10:40:51

比如抽象工厂和工厂方法的辅助对象就不同

麒麟()  10:42:17

抽象工厂有哪些辅助对象呢

麒麟()  10:42:25

工厂方法有哪些扶助对象

trufun  10:42:29

他们的实体对象可以相同

trufun  10:42:42

后面具体讲

trufun  10:47:32

在设计模式中应用辅助对象,就像你要上传文件,要建立buf对象一样自然

trufun  10:48:40

所以,又回到老问题,需要大家熟记设计模式

trufun  10:53:56

辅助对象中的抽象对象,主要实现由子类实现或重新定义方法

trufun  10:56:59

辅助对象中接口对象,主要实现与实体对象的动态绑定

trufun  11:00:06

感兴趣的网友可以把设计模式中辅助对象数一遍,看看是否就有这样的职责

麒麟()  11:01:37

好的

===============================================

    现在定制Trufun企业内训或者购买Trufun系列产品,

    可获赠苹果iPad或者iPhone 4S产品,先到先得!!

------详情访问www.trufun.net咨询了解-----

===============================================

trufun  11:02:27

通过辅助对象,把实体对象联系起来,形成固定搭配,就是设计模式

trufun  11:05:21

应用设计模式的第三点,就浏览设计模式,与你的问题进行匹配,赛选出几个设计模式

天意@来生缘()  11:07:56

也就是说,拿业务需求对比设计模式,筛选出符合的设计模式,而后根据设计模式确定辅助对象

trufun  11:08:48

重点在设计模式第二要素,是否适合你,和第四要素,效果

trufun  11:08:51

天意@来生缘()  11:13:00

第二要素,业务需求匹配设计模式,如果这时候对设计模块了解的有限,那就只能先根据设计模式的应用场景进行匹配了,并且这个匹配是某一点上的匹配还是某一业务范围的匹配呢

trufun  11:13:43

怎样确定呢,可以从设计模式的结构(后面重点讲)和示例代码进行分析,权衡

trufun  11:14:44

从你的问题,和模式的职责进行匹配

天意@来生缘()  11:16:58

恩,比如单例模式,职责是一个类有且只有一个对象,那如果当前业务场景中的实体对象只有一个对象的话,就可以当做候选的?

trufun  11:18:05

设计时尽可能避免孤类存在

trufun  11:22:35

最后,重新检查一下你选择的设计模式,看看还有没有可变的,需要封装的地方

trufun  11:25:34

另外,要注重效果,不要用了设计模式,影响了性能和可维护性

深蓝医生(45383850)  11:27:12

模式是重构出来的。

trufun  11:27:50

今天的设计模式概念的下半部分就讲完了,888

trufun  11:29:18

一般是在后期重构出来,开始堆代码时只关心功能实现

继续阅读