冰淇淋有进口和出口两种渠道获得,口味也有苹果味和香蕉味。
IceCreamFactory.java
package ice;
public abstract class IceCreamFactory {
public abstract DomesticIceCream produceDomesticIceCream();
public abstract ImportedIceCream produceImportedIceCream();
}
DomesticIceCream.java
package ice;
public interface DomesticIceCream {
public void taste();
}
ImportedIceCream.java
package ice;
public interface ImportedIceCream {
public void taste();
}
AppleDomesticIceCream.java
package ice;
public class AppleDomesticIceCream implements DomesticIceCream {
@Override
public void taste() {
// TODO Auto-generated method stub
System.out.println("国产冰淇淋---苹果味");
}
}
AppleImportedIceCream.java
package ice;
public class AppleImportedIceCream implements ImportedIceCream {
@Override
public void taste() {
// TODO Auto-generated method stub
System.err.println("进口冰淇淋--苹果味");
}
}
AppleIceCreamFactory.java
package ice;
public class AppleIceCreamFactory extends IceCreamFactory {
@Override
public DomesticIceCream produceDomesticIceCream() {
// TODO Auto-generated method stub
return new AppleDomesticIceCream();
}
@Override
public ImportedIceCream produceImportedIceCream() {
// TODO Auto-generated method stub
return new AppleImportedIceCream();
}
}
BananaDomesticIceCream.java
package ice;
public class BananaDomesticIceCream implements DomesticIceCream {
@Override
public void taste() {
// TODO Auto-generated method stub
System.out.println("国产冰淇淋---香蕉味");
}
}
BananaImportedIceCream.java
package ice;
public class BananaImportedIceCream implements ImportedIceCream {
@Override
public void taste() {
// TODO Auto-generated method stub
System.out.println("进口冰淇淋---香蕉味");
}
}
BananaIceCreamFactory.java
package ice;
public class BananaIceCreamFactory extends IceCreamFactory {
@Override
public DomesticIceCream produceDomesticIceCream() {
// TODO Auto-generated method stub
return new BananaDomesticIceCream();
}
@Override
public ImportedIceCream produceImportedIceCream() {
// TODO Auto-generated method stub
return new BananaImportedIceCream();
}
}
Client.java
package ice;
public class Client {
public static void main(String[] args) {
// TODO Auto-generated method stub
IceCreamFactory appleIceCreamFactory = new AppleIceCreamFactory();
ImportedIceCream apple1 = appleIceCreamFactory.produceImportedIceCream();
apple1.taste();
IceCreamFactory bananaIceCreamFactory = new BananaIceCreamFactory();
DomesticIceCream banana1 = bananaIceCreamFactory.produceDomesticIceCream();
banana1.taste();
}
}