Demo----披萨工长模式设计


package com.msb.come;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("选择你想要制作的披萨:1.培根披萨 2.水果披萨");
int nub = scanner.nextInt();
Pasi pasi = FuliesStore.getPasi(nub);
String methodShow = pasi.methodShow();//返回的是对象的子类方法
System.out.println(methodShow);
}
}
package com.msb.come;
import java.util.Scanner;
public class FuliesStore {
//方法:提供种类
public static Pasi getPasi(int chose) {
Pasi pasi =null;
String pisainame = null;
Scanner scanner = new Scanner(System.in);
switch (chose) {
case 1: {
pisainame = "培根披萨";
System.out.println("请输入披萨的克数:");
int ke = scanner.nextInt();
System.out.println("请输入披萨的大小:");
int size = scanner.nextInt();
System.out.println("请输入披萨的价格:");
int pices = scanner.nextInt();
//将录入的信息封装成ps的对象
Pege pege = new Pege(pisainame, pices, size, ke);
pasi = pege;
}
break;
case 2: {
pisainame = "水果披萨";
System.out.println("请输入输入你要加入的水果:");
String kill = scanner.next();
System.out.println("请输入披萨的大小:");
int size = scanner.nextInt();
System.out.println("请输入披萨的价格:");
int pices = scanner.nextInt();
Filues filues = new Filues(pisainame, pices, size, kill);
pasi = filues;
}
break;
}
return pasi;
}
}
对象,父类的创建
package com.msb.come;
//抽取出共同属性的父类
public class Pasi {
private String name;
private double piace;
private int size;
public Pasi() {
}
public Pasi(String name, double piace, int size) {
this.name = name;
this.piace = piace;
this.size = size;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPiace() {
return piace;
}
public void setPiace(double piace) {
this.piace = piace;
}
public int getSize() {
return size;
}
public void setSize(int size) {
this.size = size;
}
public String methodShow(){
return
"名称:" + name + "\n" +
"价格:" + piace +"元\n" +
"大小:" + size +"寸\n";
}
@Override
public String toString() {
return
"名称:" + name + "\n" +
"价格:" + piace +"元\n" +
"大小:" + size +"寸\n";
}
}
package com.msb.come;
//子类培根
public class Pege extends Pasi{
private int wight;
public Pege(){}
public Pege(String name, double piace, int size, int wight) {
super(name, piace, size);
this.wight = wight;
}
public int getWight() {
return wight;
}
public void setWight(int wight) {
this.wight = wight;
}
public String methodShow(){
return
super.methodShow() +
"培根克数" + wight +
"克";
}
}
package com.msb.come;
//子类水果,描述特有的方法属性
public class Filues extends Pasi{
private String kill;
public Filues() {
}
public Filues(String name, double piace, int size, String kill) {
super(name, piace, size);
this.kill = kill;
}
public String getKill() {
return kill;
}
public void setKill(String kill) {
this.kill = kill;
}
@Override
public String methodShow() {
return super.methodShow()+"配料水果:"+kill;
}
}