面向对象软件设计——设计模式学习

  工作也从开始C语言,转向现在的C++,表面上看得出,但实际中却没有把这种转变深入到思想中,究其原因还是对面向对象的软件设计不了解,有必要好好学习一下设计模式这个东东。本文就是设计模式学习第一篇…… 

1 面向对象软件设计中的问题

2 设计模式

设计模式:某种问题通用性的解决方案,可重复的模式。就像是一种模具,使用这种模具可以批量性的生产某种东西一般。这里的设计模式是一个非常抽象性的概念,他是在某种场景中,针对某类问题,提出解决方案,以达到某种效果。“每一个模式描述了一个不断重复发生的问题以及该问题的解决方案的核心。

3 MVC模式

MVC(模型/视图/控制器)用来构建完整的用户界面(显示和响应)。基本上所有的框架都是基于MVC模式或者其变种的模式开发的。具体的问题就是需要使用到具体的模式或者多种模式来解决。

其交互方式有:(当然还有其他方式)

MVC模式可以参考:

http://www.cnblogs.com/wubaiqing/archive/2011/10/26/2225438.html

http://www.cnblogs.com/virusswb/archive/2011/11/04/2236497.html

其中讲解的非常棒!

4 设计模式解决问题

       (1)合理的对现象进行抽象

数据,数据处理,操作,显示,交互……

       (2)决定对象的粒度

如何设计一个对象,一个多大的对象,各种方法属性的权限如何等。如:使用一个属性类对象list直接管理一系列对象,还是交给一个属性类对象来管理。

       (3)指定对象的接口

              属性名,操作名,参数,返回值,虚函数,重载……

             

       (4)描述对象的实现

              UML图绘制整个系统的类结构图

       (5)运用复用机制

                     合适的继承,组合的运用,委托(多态性),模板

       (6)运行时刻和编译时刻结构

              编译时刻结构:代码结构决定

              运行时刻结构:通信对象网络决定

       (7)设计应支持的变化

              复用性,,健壮性,可扩展性

              对象创建,算法依赖,驱动……

原文地址:https://www.cnblogs.com/bastard/p/2247696.html