java工厂设计模式,
分享于 点击 15907 次 点评:89
java工厂设计模式,
public interface Car {
public void start();
public void stop();
}
public class Car_Class implements Car {
private String carname;
int speed;
public String getName(){
return carname;
}
public void setName(String carname){
this.carname = carname;
}
public int getSpeed() {
return speed;
}
public void setSpeed(int speed) {
this.speed = speed;
}
public void start() {
}
public void stop() {
}
}
public class CAR_CALSS_AUDI extends Car_Class {
public void start(){
System.out.println(this.getName()+"启动了,速度为"+this.getSpeed());
}
public void stop(){
System.out.println(this.getName()+"停止了");
}
}
public class CAR_CALSS_3W extends Car_Class {
public void start(){
System.out.println("我是奥迪;"+this.getName()+"启动了,速度为"+this.getSpeed());
}
public void stop(){
System.out.println("我是奥迪;"+this.getName()+"停止了");
}
}
public class CAR_FACTORY_AUDI implements CAR_FACTORY {
public Car create_car() {
CAR_CALSS_3W car_3w_imp = new CAR_CALSS_3W();
car_3w_imp.setName("上海大众passt");
car_3w_imp.setSpeed(200);
return car_3w_imp;
}
}
public class CAR_FACTORY_Auto implements CAR_FACTORY {
public Car create_car() {
CAR_CALSS_AUDI car_audi_imp = new CAR_CALSS_AUDI();
car_audi_imp.setName("奥迪A6");
car_audi_imp.setSpeed(200);
return car_audi_imp;
}
}
public static void main(String[] args) {
CAR_FACTORY_AUDI factory_audi = new CAR_FACTORY_AUDI();
Car car_ref = factory_audi.create_car();
car_ref.start();
car_ref.stop();
}
package cn.java.adpater; interface Car { void run(); void stop(); } class Benz implements Car { public void run() { System.out.println("奔驰开车了"); } public void stop() { System.out.println("奔驰停车了"); } } class Ford implements Car { public void run() { System.out.println("福特开车了"); } public void stop() { System.out.println("福特停车了"); } } //加上次接口,就成了工厂方法模式,否则:简单工厂模式 //抽象工厂模式,就是把工厂给抽象(接口)出来,然后在实现这个接口,窗户端调用时,要通过new来创建工厂,然后在调用工厂里的方法 interface AbstractFactory{} class FactoryCar implements AbstractFactory{ public static Car newCar(String type) { Car c = null; try { c = (Car) Class.forName("cn.java.adpater." + type).newInstance(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } return c; } } //有对象模型Car,创建对象Benz,通过工厂帮我们new出来 public class FactoryDemo { public static void main(String[] args) { Car car = FactoryCar.newCar("Benz"); if (car != null) { car.run(); car.stop(); }else{ System.out.println("造不了这种汽车....."); } } }
package org.jzkangta.factorydemo03; interface Person{ public void eat(); public void talk(); } //男人 class Man implements Person{ public void eat(){ System.out.println("男人再吃东西。。。。"); } public void talk(){ System.out.println("男人在说话。。。。"); } } //女人 class Woman implements Person{ public void eat(){ System.out.println("女人再吃东西。。。。"); } public void talk(){ System.out.println("女人在说话。。。。"); } } interface Animal{ public void eat(); public void sleep(); } //公牛 class Bull implements Animal{ public void eat(){ System.out.println("Bull再吃东西。。。。。"); } public void sleep(){ System.out.println("Bull睡觉了。。。。"); } } //母牛 class Cow implements Animal{ public void eat(){ System.out.println("Cow再吃东西。。。。。"); } public void sleep(){ System.out.println("Cow睡觉了。。。。"); } } //NWFactory-->女娲 interface NWFactory{ public Person getPerson(String type); public Animal getAnimal(String type); } //阳绳-->用来造男人和雄性动物(Bull) class YangSheng implements NWFactory{ Man m=null; Bull b=null; public Man getPerson(String type){ try { m=(Man)Class.forName("org.jzkangta.factorydemo03."+type).newInstance(); } catch (Exception e) { e.printStackTrace(); } return m; } public Bull getAnimal(String type){ try { b=(Bull)Class.forName("org.jzkangta.factorydemo03."+type).newInstance(); } catch (Exception e) { e.printStackTrace(); } return b; } } //阴绳-->用来造女人和雌性动物(Cow) class YinSheng implements NWFactory{ Woman w=null; Cow c=null; public Woman getPerson(String type){ try { w=(Woman)Class.forName("org.jzkangta.factorydemo03."+type).newInstance(); } catch (Exception e) { e.printStackTrace(); } return w; } public Cow getAnimal(String type){ try { c=(Cow)Class.forName("org.jzkangta.factorydemo03."+type).newInstance(); } catch (Exception e) { e.printStackTrace(); } return c; } } public class FactoryDemo03 { public static void main(String[] args) { //实例化一个阳绳,ys YangSheng ys=new YangSheng(); //实例化一个阴绳,ys1 YinSheng ys1=new YinSheng(); //造男人和女人,p1是男人,p2是女人 Person p1=ys.getPerson("Man"); Person p2=ys1.getPerson("Woman"); //造动物,a1是公牛(Bull),a2是母牛(Cow) Animal a1=ys.getAnimal("Bull"); Animal a2=ys1.getAnimal("Cow"); a1.eat(); a1.sleep(); a2.eat(); a2.sleep(); p1.eat(); p1.talk(); p2.eat(); p2.talk(); } }
相关文章
- 暂无相关文章
用户点评