Abstract factory pattern of java design pattern

write picture description here
write picture description here

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();
}

}

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326300667&siteId=291194637