container,injection

为什么使用容器

在书写程序的时候,常常需要对大量的对象引用进行管理。为了实现有效的归类管理,我们常常将同类的引用放置在同一数据容器中。由于数据容器中存放了我们随时可能需要使用到的对象引用,所以一般的数据容器要都要能能提供方便的查询、遍历、修改等基本接口功能。早期的OOP语言都通过数组的方式来实现对引用集的集中管理和维护。

Container包括Collection和Map两种分类,其中Collection用来保存单个的Objects,Map以Key-Value的形式来保存Objects。Collection包括List和Set两种,List接口包括两个基本的实现类ArrayList和LinkedList。ArrayList允许随机的快速访问其中元素,但是Insert和Remove速度较慢;LinkedList访问其中元素的速度较慢,但是Insert和Remove相对于ArrayList来说较快。Set接口不允许其中有相等的元素(List允许duplicate elements),其包括两个基本的实现类HashSet和TreeSet。HashTable支持快速的查找元素(要求元素支持hashCode方法),其中的元素随机保存;TreeSet以一定的顺序保存元素,它实现SortedSet接口,均可以返回Comparator接口来确定其排序算法,元素通过实现Comparable接口来确定其间的顺序。Map接口以key-value的形式保存元素,Map中的key都是unique的,其包括两个实现类HashMap和TreeMap。HashMap是HashTable的替代品,它提供定时间的插入和查找元素;TreeMap中的key sets是以一定的顺序保存的,这和TreeSet是类似的,也可以返回Comparator接口来确定其key set的排序算法。

injection

依赖注入(Dependency Injection)是用于实现控制反转(Inversion of Control)的最常见的方式之一。

依赖注入的实现方式

1.构造函数注入(Contructor Injection)

2.Setter注入

3.接口注入

依赖注入降低了依赖和被依赖类型间的耦合,在修改被依赖的类型实现时,不需要修改依赖类型的实现,依赖注入只是控制反转的一种实现方式。控制反转还有一种常见的实现方式称为依赖查找。

猜你喜欢

转载自www.cnblogs.com/maye123/p/10582988.html