抽象工厂

概念

定义一个接口,用来创建相关或依赖的对象家族,而不需要指明具体类。

图片来自网络

实例
IPhoneStore、WPhoneStore实现同一接口PhoneStore

public interface PhoneStore {
 public abstract Phone orderPhone();
 public abstract PhoneFilm orderPhoneFilm();
}
public class IPhoneStore implements PhoneStore {
    public Phone orderPhone() {
        return new IPhone();
    }

    public PhoneFilm orderPhoneFilm() {
        return new IPhoneFilm();

    }
}
public class WPhoneStore implements PhoneStore {
    public Phone orderPhone() {
        return new WPhone();
    }
    public PhoneFilm orderPhoneFilm() {
        return new WPhoneFilm();
    }
}

IPhone、WPhone继承Phone抽象类

public abstract class Phone {
    private String name;
 Phone(String name) {
        this.name = name;
    }
 public void printInfo() {
        System.out.println(name);
    }
}
public class IPhone extends Phone {
    IPhone() {
        super("iphone");
    }
}
public class WPhone extends Phone {
    WPhone() {
        super("WindowsPhone");
    }
}

IPoneFilm、WPoneFilm继承PhoneFile抽象类

public abstract class PhoneFilm {
    private String name;
    PhoneFilm(String name) {
        this.name = name;
    }
    public void printInfo() {
        System.out.println(name);
    }
}

public class IPhoneFilm extends PhoneFilm {
    IPhoneFilm() {
        super("iphone 手机膜");
    }
}
public class WPhoneFilm extends PhoneFilm {
    WPhoneFilm() {
        super("windows phone 手机膜");
    }
}

测试代码

public class PhoneTest {
    public static void buyPhone(PhoneStore phoneStore)
    {
        System.out.println("买手机送手机膜");
        Phone phone=phoneStore.orderPhone();
        PhoneFilm phoneFilm=phoneStore.orderPhoneFilm();        
        phone.printInfo();
        phoneFilm.printInfo();
    }

    public static void main(String[] args) {
        buyPhone(new IPhoneStore());
        buyPhone(new WPhoneStore());
    }
}

测试结果

买手机送手机膜
iphone
iphone 手机膜
买手机送手机膜
WindowsPhone
windows phone 手机膜

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值