设计模式是一种规约,指导我们写一些 易理解、好上手 的东西。减少伤害。
设计评价指标:可读、复用、扩展、测试、维护
企业业务 -> 应用程序
企业可以 集中力量办大事。事大就要简化。
写程序 = 写故事
= (时间地点+人物)+ 事物发生的起因经过结果
=(场景+人物)+做什么
= 数据+方法
简化数据=数据结构化=自下而上的对象抽象
1. 划分 业务边界,形成知识
2. 建立 统一语言,达成共识
简化方法=方法结构化=自上而下的过程分解
1. 划分 阶段和步骤
写程序代码
计算机基本结构是 文件,Linux一切即文件,程序也是按文件组织的。
程序
= (项目+模块)+ 类
= 文件夹 + 文件
类
= 属性+方法
= 数据+方法
分类,是 人类 简化 世界 的方式,比如 动物世界 分类,用软件构建如下:
from 类图-大话设计模式-程杰
概念:
类分为普通类、抽象类 和 接口
1. 普通类 类间 关系 可以是 继承 (鸟类 和 大雁类),也可以是组合( 鸟类和翅膀类 ) 。
2. 抽象类 可以有抽象方法 (鸟会下蛋,但鸟是我们定义的抽象,不是真实存在的,下蛋方法只是声明,没有实现;大雁是真实存在的,大雁可以实现下蛋),自下而上 抽取成 抽象类
3. 接口 定义 功能 (大雁类 和 飞翔),自上而下 设计成 接口
4. 枚举 属性集合-字典集合
5. 注解 属性集合-元信息、配置信息
这5个定义中,只有 类 可以被实例化。
同义词:
类,属性,方法, 其实都是在拿一个 词语 来 定义他们,从这个角度来说,
词语 contains(类,方法,属性),词语 = 信息 = 数据。数据可以通过 方法 传递,指的是 类、方法、属性 都可以通过 方法 传递。
方法=函数=指令=动作=行为=功能 = 做什么
嵌套函数=数据+指令集=Pipeline=Stream=流程
类 = 对象 = 信息 = 实体
高层-产品使用上,强调的是 面向个人使用的流程节点(方法)。->面向过程设计
底层-细节设计上,强调的是 适配所有人使用的业务模块(类划分)。->面向对象设计
小结
业务 划分粒度 很灵活,但总能达成共识,为了减少 不确定性,我们定义模型,总结了一些 业务结构 的 最佳实践——设计模式。
皮一下:我一看你写长代码就慌,你这代码看起来好丑 -> 面向业务开发