java 简单工厂设计模式
先写程序,在来解释简单工厂和工厂方法模式。
1、定义一个汽车接口
package com.beckham.factory;
/**
* @author 作者<Beckham>
* Email:gaowm0207@gmail.com
* Jan 26, 2010 2:35:15 PM
* Version:1.0
*/
public interface Car {
public void start() ;
}
接口里面定义一个方法:start()
2、实现该接口的汽车
奔驰
package com.beckham.factory;
/**
* @author 作者<Beckham>
* Email:gaowm0207@gmail.com
* Jan 26, 2010 3:07:25 PM
* Version:1.0
*/
public class Benz implements Car {
public void start() {
System.out.println("奔驰车启动了。。。。");
}
}
奥迪
package com.beckham.factory;
/**
* @author 作者<Beckham>
* Email:gaowm0207@gmail.com
* Jan 26, 2010 3:07:46 PM
* Version:1.0
*/
public class Audi implements Car {
public void start() {
System.out.println("奥迪车启动了。。。。。。");
}
}
到此,已经有2种汽车实现了汽车接口
package com.beckham.factory;
public class Test {
/**
* Owner
* Jan 26, 2010 2:37:11 PM
* @throws Exception
*/
public static void main(String[] args) throws Exception {
Car c = new Benz() ;
//Car c = new Audi() ;
c.start() ;
}
}
我们可以通过自己new不同的对象,从而创建不同对象的实例调用共同的start方法。
这是我们就会想,是不是可以把产生汽车的过程放在一个工厂里面,而我们调用的时候只需要告诉工厂我们需要哪种汽车,工厂就返回给我们该汽车呢?那么我们就创建该工厂。
package com.beckham.factory;
/**
* @author 作者<Beckham>
* Email:gaowm0207@gmail.com
* Jan 26, 2010 2:49:46 PM
* Version:1.0
*/
public class CarFactory {
/*
* carName 就是需要工厂产生的对象
* 通过反射机制来获取该对象的实例
*/
public static Car getInstance(String carName) throws Exception {
return (Car) Class.forName(carName).newInstance();
}
}
工厂接受传递过来的汽车的名称,返回该汽车的实例
package com.beckham.factory;
public class Test {
/**
* Owner
* Jan 26, 2010 2:37:11 PM
*
相关文档:
import java.io.IOException;
import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
public class DES {
private byte ......
Map、Set、Iterator迭代详解
Map接口定义了四种类型的方法,每个Map都包含这些方法。
equals(Object o)比较指定对象与此Map的等价性。
hashCode()返回此Map的哈希码。
Map定义了几个用于插放和删除元素的变换方法。
remove(Object key) 从Map中删除键和关联的值。
put(object key,Object value) 将指定值与指定键相关 ......
Hibernate
之父 Gavin King[1]建议开发者升级到 Java EE 6 平台,并指出了一些不愿意升级的观点其实是没有根据的。
Java EE 6 发布后,我看到了很多反对升级到新平台的观点。这些反对观点大多是由 Tomcat
/ Jetty 以及一些开源框架(例如 Hibernate 与 Spring)的使用者提出。
&n ......
一 线程的基本概念
线程是一个程序内部的顺序控制流.一个进程相当于一个任务,一个线程相当于一个任务中的一条执行路径.
多进程:在操作系统中能同时运行多个任务(程序)
多线程:在同一个应用程序中有多个顺序流同时执行
Java的线程是通过java.lang.Thread类来实现的
JVM启动时会有一个由主方法(public static void main( ......
通过Web Service混合.NET和Java技术往往很容易,但Web Service并非是.NET和Java互操作的万灵丹。Web Service在集成独立的跨网络通信的组件时非常有用,在简单的调用/返回情景中,涉及的数据类型数量非常有限,且Web Service是基于标准的,混合.NET和Java技术通常显得很简单,因此有人认为Web Serv ......