设计模式 - 工厂模式

类中不存在无参构造方法,但存在静态工厂方法!

以‘Calendar’为例,这个类存在'public static Calendar getInstance()‘方法,这个'getInstance()'方法既是static的,又是返回'Calendar'对象的,所以这个方法就是“静态工厂方法”!

类中不存在无参构造方法,也没有静态工厂方法,但是存在实例工厂方法!

所谓的“实例工厂方法”,指另一个类中有工厂方法,可以获取目标类型的对象,即x类中有工厂方法(非静态的),可以用于获取Y类的对象!


工厂模式:

Model + View + Controller


###如何遍历各种不同类型的集合

具体的遍历方法看下面图中的测试案例!

如果遍历List,可以使用普通的for循环或其他循环语法,也可以使用增强for循环,还可以使用迭代器。

如果遍历set。可以使用增强for循环,也可以使用迭代器;

如果遍历map,必须先调用map集合对象的keySet()方法,该方法可以获取当前map集合对象中所有的key,获取到的类型是一个Set,然后遍历Set集合,在遍历过程中,通过Map集合对象的get()方法,基于Key获取value


### 注入一般的非基本型的值

基本类型的值:String与八大基本类型

非基本类型的值: 上述范围之外的值

注入基本值可以通过value属性直接将值写出来,对于写不出来的非基本类型,必须通过ref属性来注入,表示引用另外一个bean,而ref属性的值就是被引用的<bean>的id值。



下面将测试List与Set还有Map类型注入:


### 注入List类型属性的值



### 注入Set类型属性的值


 

### 注入Map类型属性的值




###【重要】注入Properties类型属性的值 -- 一般应用于db.properties,写jdbc连接






####【了解】关于注入值的补充



为List注入值的做法,也适用于对数组类型的数据注入值。


public class Sample {
private String[] names;

public void setNames(String[] names) {
this.names = names;
}
}


<property name="names">
<array>
<value>Alex</value>
<value>Billy</value>
</array>
</property>


甚至,在配置XML时,`<list>`和`<array>`可以随意挑选使用,即为`List`类型的数据注入值时,
既可以使用`<list>`节点,也可以使用`<array>`节点,反之,为数组类型的数据注入值时,也是一样。


还可以为字符串类型的数据注入空字符串值(`""`),在注入时:


<property name="xx" value="" />


还可以为引用数据类型的数据注入null值,注入时:


<property name="xx">
<null />
</property>


最后,如果注入的值需要显式的确定数据类型,需要:


<property name="xx">
<value type="数据类型">值</value>
</property>

猜你喜欢

转载自blog.csdn.net/nishino_shou/article/details/80535784