电池类:
package Phone;
/**
* 电池类
*/
public class Battery {
private String bName; //电池型号
public String getBName() {
return bName;
}
public void setBName(String bName) {
this.bName = bName;
}
@Override
public String toString() {
return "Battery{" +
"bName='" + bName + '\'' +
'}';
}
}
主板类:
package Phone;
/**
* 主板类
*/
public class Motherboard {
private String mName; //主板型号
public String getMName() {
return mName;
}
public void setMName(String mName) {
this.mName= mName;
}
@Override
public String toString() {
return "Motherboard{" +
"mName='" + mName + '\'' +
'}';
}
}
手机屏幕类:
package Phone;
/**
* 显示屏
*/
public class Screen {
private String sName; //屏幕型号
public String getSName() {
return sName;
}
public void setSName(String sName) {
this.sName = sName;
}
@Override
public String toString() {
return "Screen{" +
"sName='" + sName + '\'' +
'}';
}
}
手机类:
package Phone;
/**
* 手机类
*/
public class Iphone {
private Battery battery;
private Motherboard motherboard ;
private Screen screen;
public Battery getBattery() {
return battery;
}
public void setBattery(Battery battery) {
this.battery = battery;
}
public Motherboard getMotherboard() {
return Motherboard;
}
public void setMotherboard(Motherboard motherboard) {
this.motherboard = motherboard;
}
public Screen getScreen() {
return screen;
}
public void setScreen(Screen screen) {
this.screen = screen;
}
@Override
public String toString() {
return "手机{" +
"电池:" + battery.getBName() +
", 主板:" + motherboard.getMName() +
", 屏幕:" + screen.getSName() +
'}';
}
}
制作手机配件类:
package Phone;
/**
* 组装手机工厂
*/
public interface SetPhoneParts {
/**
* 创建电池
* @return
*/
Battery createBattery();
/**
* 创建主板
* @return
*/
Motherboard createMotherboard();
/**
* 创建屏幕
* @return
*/
Screen createScreen();
}
制作手机配件实现类:
package Phone;
/**
* 手机原料工厂
*/
public class SetPhonePartsImpl implements SetPhoneParts {
@Override
public Battery createBattery() {
System.out.println("这里是手机原料工厂:正在制作电池...");
Battery battery= new Battery();
battery.setBName("飞毛腿");
return battery;
}
@Override
public Motherboard createMotherboard() {
System.out.println("这里是手机原料工厂:正在制作主板...");
Motherboard motherboard= new Motherboard();
motherboard.setMName("三星");
return motherboard;
}
@Override
public Screen createScreen() {
System.out.println("这里是手机原料工厂:正在制作屏幕...");
Screen screen= new Screen();
screen.setSName("防弹");
return screen;
}
}
装机工厂类:
package Phone;
/**
* 装机工厂
*/
public interface AssemblePhone {
/**
* 装机
* @return
*/
Iphone createPhone();
}
装机工厂实现类:
package gongchuan;
/**
* 装机工厂
*/
public class AssemblePhoneImpl implements AssemblePhone {
private SetPhoneParts setPhoneParts;
public AssemblePhoneImpl(){
//实例制作手机配件
this.setPhoneParts=new setPhoneParts();
System.out.println("这里是装机工厂:制作手机配件...");
}
public AssemblePhoneImpl(SetPhoneParts setPhoneParts){
System.out.println("配件送达"+setPhoneParts);
this.setPhoneParts=setPhoneParts;
}
@Override
public Iphone createPhone() {
Iphone iphone=new Iphone();
iphone.setBattery(setPhoneParts.createBattery());
iphone.setMotherboard(setPhoneParts.createMotherboard());
iphone.setScreen(setPhoneParts.createScreen());
System.out.println("这里是装机工厂:正在组装手机...");
return iphone;
}
}
测试类:
package Phone;
public class test {
public static void main(String[]args){
AssemblePhone assemblePhone=new AssemblePhoneImpl();
Iphone iphone = assemblePhone.caretePhone();
System.out.println("组装好的机子:"+iphone);
}
}
控制台输出: