这两天刚看了《大话设计模式》这本书的第一章,
首先就拿传统印刷和活字印刷做对比,如果我传统印刷改一个字就要全部重刻,
而活字印刷只需要重刻这一个字就好。反映到项目中就是大规模修改代码,与局部修改的对比。好处就是我们项目的风险会降低,
程序员的工作也会减轻。 突出耦合性高的项目的弊端。(面向对象的三个特征"继承","封装","多态"),
使用面向对象的方式降低项目的耦合性。
接下来讲了简单工厂模式,工厂在我们现实生活中就是为我们去生产,加工各种产品。
我们提需求工厂为我们去实现,反映到我们代码中就是传入一个标识符,工厂相应的为我们创建对应类的实例。在我们现实生活中
工厂经营不错了,有可能去扩展业务,比如说一个造鞋的工厂,突然引进一台机器,用来造皮带的。反映到我们代码中就是,在增加
一个判断,去实例化新增类的实例。
最后就是解释了UML中类图的一些标记。
类名 |
-属性名 |
+方法名 #方法名 |
第一层是类名,第二层是属性,第三层是方法名(也就是操作)
如果类名是斜体显示的,说明这个类是抽象类,前面的符号代表权限。”-”代表private,”+”代表public,”#”代表protected
《interface》 类名 |
-属性名 |
+方法名
|
如果类名的上面写《interface》代表此类是接口,如果没有写《interface》但是有一个棒棒糖的标志,也是代表这个类是一个接口。这两种标志都代表接口。
实线+空心三角形 这个图标表示继承,空心三角形指向的类是父类。
虚线+空心三角形 这个图标表示实现,空心三角形指向的类是父类。
实线+箭头 这个图标表示关联,实线箭头。当一个类需要知道另外一个类时是关联关系。企鹅是鸟,但是不会飞,这与气候有关联。
空心菱形+实线+箭头 这个图标表示聚合,箭头指向个体。聚合是一种弱的”拥有”关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。我是这么理解的,雁群(A)有很多大雁,你在这里面(B),雁群里面包含你,但是你不能代表一个雁群。你掉队了,这个雁群依然是存在。
实心菱形+实线+箭头 这个图标表示组合关系。组合(合成)是一种强的”拥有”关系,体现了严格的部分与整体的关系。部分和整体的生命周期一样。
虚线+箭头 这个图标表示依赖关系。箭头指向被依赖方。人需要氧气,那么箭头指向氧气。
有不正确地方,还请指正!