抽象工厂模式:
一个对象族有相同的约束可以使用抽象工厂
//抽象产品
public abstract class Animal {
public abstract void group();
}
public abstract class Botany {
public abstract void group();
}//具体产品
public class Cat extends Animal{
@Override
public void group() {
System.out.println("猫吃老鼠长大");
}
}public class Dog extends Animal{
@Override
public void group() {
System.out.println("狗吃屎长大");
}
}
public class Sunflower extends Botany {
@Override
public void group() {
System.out.println("向日葵迎着太阳长大");
}
}public class Lotus extends Botany{
@Override
public void group() {
System.out.println("荷花在水中盛开");
}
}
//抽象工厂
public abstract class BiologyFactroy {
public abstract Animal createAnimal();
public abstract Botany createBotany();
}
//具体工厂
public class CatAndSunflowerFactroy extends BiologyFactroy{
@Override
public Animal createAnimal() {
return new Cat();
}
@Override
public Botany createBotany() {
return new Sunflower();
}
}public class DogAndLotusFactroy extends BiologyFactroy{
@Override
public Animal createAnimal() {
return new Dog();
}
@Override
public Botany createBotany() {
return new Lotus();
}
}//Test
public static void main(String[] args) {
CatAndSunflowerFactroy cs = new CatAndSunflowerFactroy();
Animal cat = cs.createAnimal();
cat.group();
Botany sunflower = cs.createBotany();
sunflower.group();
DogAndLotusFactroy dl = new DogAndLotusFactroy();
Animal dog = dl.createAnimal();
Botany lotus = dl.createBotany();
dog.group();
lotus.group();
}
1623

被折叠的 条评论
为什么被折叠?



