- DIP,IOC,DI
- DIP:Dependency Inversion Principle,依赖倒置原则
- 高层模块不应该依赖底层模块,二者都应该依赖于抽象,应该通过抽象进行调用,而不是直接调用
- 抽象不依赖于实现,实现应该依赖抽象
- IOC:Inversion of Control,控制反转,控制反转把要生成的对象在文件中给出定义的,然后利用反射根据文件中给出的类名生成相应的对象
- DI:依赖注入,它提供一种机制,将需要依赖(低层模块)对象的引用传递给被依赖(高层模块)对象
- 构造函数注入
- 属性注入
- 接口注入
DIP是软件设计的一种思想,IoC则是基于DIP衍生出的一种软件设计模式。DI是IoC的具体实现方式之一,使用最为广泛。IoC容器是DI构造函注入的框架,它管理着依赖项的生命周期以及映射关系。
优点:降低耦合,只要符合接口标准的实现,都可以进行插接,替换子类,只要修改配置文件即,可提高灵活性和可维护性,可扩展性
缺点:通过反射方式,在运行效率上有一定的损耗;系统不太直观,增加学习和培训成本,使用具体IOC框架产品(比如:Spring),需要进行大量的配制工作,比较繁琐,如果项目小会增加工作成本。
当前比较知名的IOC容器有:Pico Container、Avalon 、Spring、JBoss、HiveMind、EJB等。其中,轻量级的有Pico Container、Avalon、Spring、HiveMind等,超重量级的有EJB,而半轻半重的有容器有JBoss,Jdon等。
- MVC
模型-视图-控制器, Spring MVC
- Plugin
OSGI标准
- ORMapping
ORM,O/RM,Object-relational mapping,是一种为了解决面向对象与关系型数据库存在的互不匹配的现象的技术。简单说:ORM是通过使用描述对象和数据库之间映射的元数据,将Java程序中的对象自动持久化到关系数据中,
已有框架:Hibernate、MyBatis
- VMF
virtual machine management framework,开源框架:openstack,kubernets,Kubernetes是Google开源的容器集群管理系统,其提供应用部署、维护、 扩展机制等功能,利用Kubernetes能方便地管理跨机器运行容器化的应用,使用Docker对应用程序包装(package)、实例化(instantiate)、运行(run)。 Kubernetes解决Docker跨机器容器之间的通讯问题,以集群的方式运行、管理跨机器的容器。
- MF
message framework,消息,异步处理,增加MessageManager,使用订阅发布模式,可以使用多线程,跨进程可以使用Redis
- MicroService
微服务是一项在云中部署应用和服务的新技术,微服务架构模式是每个微服务独立的部署。开发者不再需要协调其它服务部署对本服务的影响。这种改变可以加快部署速度。UI团队可以采用AB测试,快速的部署变化。微服务架构模式使得持续化部署成为可能。