1、OOP:一切皆对象,对象交互组成功能,功能叠加组成模块,模块叠加组成系统。
类--砖头 系统--房子
类--细胞 系统--人
面向对象是非常适合做大型系统
缺点: 应对需求变化扩展的时候,比较困难;
面向对象是静态的:任何需求的细微变化,都可能导致比较大的影响
2、 设计模式:设计出灵活 可扩展 可重用 的架构 可以解决部分问题
都在折腾抽象/类
3、AOP:面向切面编程 编程思想
就是解决类的内部变化问题
能做到让开发者动态的修改一个静态的面向对象模型,
在不破坏封装的前提下,去增加各种功能:非业务逻辑,是一些公共逻辑
是对OOP的有效补充
有了AOP之后,OOP也变得简单了
4、IOC:(DIP)依赖倒置:系统架构时,高层模块不应该依赖底层模块,二者通过抽象来依赖。依赖抽象,而不是细节。
通过工厂
IOC控制反转:把高层对低层的依赖,转移到第三方决定,避免高层对底层的直接依赖,是一种目的。程序架构具备良好的扩展性和稳定性。
DI 依赖注入:是用来实现Ioc的一种手段