Abstract Factory
public abstract class AbstractElectricityFactory {
public abstract AbstractTelevision createTelevision();
public abstract AbstractFridge createFridge();
}
Concrete Factory Haier
public class HaierFactory extends AbstractElectricityFactory{
@Override
public AbstractTelevision createTelevision() {
return new HaierTelevision();
}
@Override
public AbstractFridge createFridge() {
return new HaierFridge();
}
}
Concrete factory Hisense
public class HisenseFactory extends AbstractElectricityFactory{
@Override
public AbstractTelevision createTelevision() {
return new HisenseTelevision();
}
@Override
public AbstractFridge createFridge() {
return new HisenseFridge();
}
}
Abstract product TV
public abstract class AbstractTelevision {
public abstract void createTelevision();
}
Abstract product refrigerator
public abstract class AbstractFridge {
public abstract void createFridge();
}
Concrete product Haier TV
public class HaierTelevision extends AbstractTelevision {
@Override
public void createTelevision () {
System.out.println("created a Haier TV");
}
}
specific product Haier refrigerator
public class HaierFridge extends AbstractFridge{
@Override
public void createFridge() {
System.out.println("创建了一台Haier冰箱");
}
}
Specific product Hisense TV
public class HisenseTelevision extends AbstractTelevision{
@Override
public void createTelevision() {
System.out.println("创建了一台Hisense电视机");
}
}
Specific product Hisense refrigerator
public class HisenseFridge extends AbstractFridge{
@Override
public void createFridge() {
System.out.println("创建了一台Hisense冰箱");
}
}
User client
public class Customer {
public static void main(String[] args) {
AbstractElectricityFactory haierFactory = new HaierFactory();
haierFactory.createFridge().createFridge();
haierFactory.createTelevision().createTelevision();
AbstractElectricityFactory hisenseFactory = new HisenseFactory();
hisenseFactory.createFridge().createFridge();
hisenseFactory.createTelevision().createTelevision();
}
}