面向对象设计模式点滴(1)

这段时间正在找工作,好久没写BLOG了,都有些荒废了,最近刚谈好了一家做WEB的,经历了4次考试(一家公司),终于有时间做下来好好想想下一步的学习目标了。晋级中级程序员的必经之路是多层开发,程序的重用性与健壮性是我下一步的目标。在Duwamish和NHibernate中都用到了设计模式的概念,特别是Factory 和 Provider,在此觉得自己需要对面向对象进行恶补和反思一下了。
因为水平有限,希望大家详细指导!
序言


1  软件设计模式来源于建筑设计模式,将软件设计工程化,是理想状态,但又与建筑模式区别:建筑师交图纸给施工人员(在不偷工减料得情况下),可以很好的建好大楼。但系统架构师不能将设计好的软件直接交给程序员(施工),程序员不一定能将其设计很好的领悟和实现。这是软件的局限性,原因是软件需求本身是变化的,不像建筑施工那样机械化(对应于软件的代码重用)。提高复用是软件设计的一个目标。

2 敏捷软件开发提到:“代码就是设计”,在软件开发中,设计师和"民工"是联系很紧的,大家都在设计。

3  不是学会使用了某种面向对象的语言(C# ,Java),就会面向对象了。(看来我的路还很长)

4  什么是对象?某种拥有责任的抽象(是工程师?还是销售人员),可以被其他对象使用的接口(我们经常用的.net类库),封装了代码和数据(没什么好说的)。

5 面向对象设计方式更能适应软件变化,更能控制变化影响的范围。(如在员工类型中新增了一个清洁工类,不影响工程师的方法)。

6 模式的分类:
                1  创建型模式----负责对象的创建
                2  结构型模式----处理类与对象的组合(类是继承还是组合,优先选择对象组合)
                3  行为型模式----类与对象交互中的指责分配(组件间的通信时,指责要清晰。例如一个变化,带来的变化最好只存在某各类中。如果指责分配不清,则A类的需求变化,会改变B类的结构)

posted @ 2006-04-19 22:08  Aldebaran's Home  阅读(1180)  评论(7编辑  收藏  举报