package net.util;
public
class
FactoryDemo {
public
static
void
main(String[] args) {
Car c=Factory.getCarInstance(
"Banz"
);
if
(c!=
null
){
c.run();
c.stop();
}
else
{
System.
out
.println(
"制造不了"
);
}
}
}
class
Factory{
public
static
Car getCarInstance(String type){
Car c=
null
;
try
{
c=(Car)Class.forName(
"net.util."
+type).newInstance();
}
catch
(InstantiationException e) {
e.printStackTrace();
}
catch
(IllegalAccessException e) {
e.printStackTrace();
}
catch
(ClassNotFoundException e) {
e.printStackTrace();
}
return
c;
}
}
interface
Car{
public
void
run();
public
void
stop();
}
class
Banz implements Car{
public
void
run() {
System.
out
.println(
"Banz跑"
);
}
public
void
stop() {
System.
out
.println(
"Banz停"
);
}
}
class
Ford implements Car{
public
void
run() {
System.
out
.println(
"Ford跑"
);
}
public
void
stop() {
System.
out
.println(
"Ford停"
);
}
}