软件架构的实现设计总结
为什么使用面向对象设计
在软件编程语言的演化过程中,从最开始的汇编,BASIC, C等低级语言解决更具体的问题,发展到C++,JAVA,Go等面向对象语言,更方便的解决抽象的问题、复杂的问题。
UML软件架构设计,解决了领域模型的一些抽象概念,是更高一层的抽象,在软件编码中的具体实现也需要一些抽象,如面向对象的思维去编程,灵活运用继承,封装,多台的特性,达到面向对象设计的目标(高内聚,低耦合)。
如何使用面向对象设计
理解面向对象语言
面向对象的三要素
继承(接口重用)
封装(隐藏实现细节)
多态 (向上转型,对象互换,如圆形,矩形,三角形与几何形状的关系)
面向对象设计的基本原则
开闭原则(OCP)
对于扩展是开放的
对于变更是封闭的
不需要修改软件实体(类,模块,函数等)就能实现功能的扩展
依赖倒置原则(DIP)
高层模块不能依赖低层模块,都依赖于抽象。
抽象不依赖实现,而是实现依赖抽象。
核心规则(好莱坞规则,Dont't call me, I'll call you)
Liskov替换原则(LSP)
子类型必须能够替换掉他们的基类型;
比如唐增出发的时候骑的是一匹普通的马,半路遇到白龙马了,这里白龙马就替换普通的马了。这里是符合LSP原则的。
举个反例:唐僧骑着白龙马去西天取经,把白龙马被换成了普通的马,这体验就变差了,这就不符合LSP原则了,小心被猴子找麻烦。
单一职责原则(SRP)
接口分离原则(ISP)
使用设计模式进行面向对象设计开发
设计模式是用于解决某一种问题的通用解决方案。
创建模式
抽象工厂模式
构建模式
工厂方法模式
原型模式
单例模式
行为模式
责任链模式
命令模式
解释器模式
迭代模式
中介者模式
备忘录模式
观察者模式
状态模式
策略模式
模板方法模式
访问者模式
结构模式
适配器模式
桥接模式
组合模式
装饰着模式
外观模式
享元模式
代理模式
评论