反射+抽象工厂改进经典案例

             反射+抽象工厂改进,就是将简单工厂用抽象工厂改进的switch语句部分获取对象方式替换,修改成用反射的方法获取对象,,先上UI类图

        

        这里我们以经典的小案例,造车案例讲述。车企有宝马,大众,比亚迪,每个厂商都能生产油车,电车,混合车。这里因此各继承各抽象的类,实现各自的造车的方法即可。这里简单,不在阐述,主要是反射部分。由于反射这里的作用主要是为了解决由于switch语句违反开放封闭的设计原则,而删掉以后增加各类灵活性会变差的问题。因此这里通过反射获取。而反射获取核心的难点在于获取类名需要路径,ForName部分,这里是采用IO流的方式向文件里输入,然后通过键值对的方式有效的获取。代码如下

        反射造车部分,通过以此获取具体想要创建车企的对象

public class CreateCarBrandFactory {
    public CreateCarBrandFactory() {
    }
    public Object CreateCarBrandFactory(String brand,String carType) throws InstantiationException, IllegalAccessException, ClassNotFoundException, IOException{

        return  Class.forName(new Config1("CreateCar.properties").outValue(brand)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值