简单工厂:工厂类中,根据条件决定一个接口由哪个具体产品类来实现。简单工厂模式的工厂类一般是使用静态方法,通过接收的参数的不同来返回不同的对象实例。
抽象工厂:对工厂方法进行扩展。各个工厂类中,再增加一个获得接口B实例的方法
简单工厂:
Person.java
public interface Person{
public void Temp()
}
Card.java
public class Card implements Person{
@Override
public void Temp() {
System.out.println(" Card ");
}
}
Car.java
public class Car implements Person{
@Override
public void Temp() {
System.out.println("car");
}
}
Temp.java
public class Temp(){
public static void main(String[] args) {
Person card= new Card();
card.Temp();
Person car= new Car();
car.Temp();
}
}
使用简单工厂模式
public class ShapeFactory {
public static final String CARD= "card";
public static final String CAR= "car";
public static Person card(String name) {
Person person = null;
if (name == null)
throw new NullPointerException();
if (name.equals("card")) {
person= new Card();
} else if (name.equals("car")) {
person= new Car();
}
return shape;
}
}
抽象方法:
C1.java
public interface C1{
public void c1();
}
R1.java
public class R1 implements C1{
@Override
public void Temp() {
System.out.println("R1");
}
}
抽象工厂:
SFtemp.java
public interface SFtemp{
S1 temp();
C1 temp1();
}
具体工厂:
public ListTemp implements SFtemp(){
@Override
public S1 temp() {
return new C1();
}
@Override
public C1 temp1() {
return new R1();
}
}