设计模式学习(二):接口的作用1-动态加载实例-简单工厂模式

接口:
import java.lang.*;
public interface Common ...{
    double runTimer(double a, double b, double c);
}
实现类1:
public class Plane implements Common ...{
    public double runTimer(double a, double b, double c) ...{
        return (a+ b + c);
    }
}
实现类2:
public class Car implements Common ...{
    public double runTimer(double a, double b, double c) ...{
        return ( a*b/c );
    }
}
主类:
public class ComputeTime ...{
    public static void main(String args[]) ...{
    try ...{
            Common d=(Common) Class.forName(args[0]).newInstance();
        这个地方通过一个类名来确定是具体哪一个实现类,当更换了实现类时,只要传一个类名过来就行,这里的代码不用修改,这就是接口的好处,
            有人要问既然知道类名了直接new一个它的实例不就完了,那样的话就要修改这里的代码了,耦合性不就大了。
            其实把“Common d=(Common) Class.forName(args[0]).newInstance();”封装到一个类里(工厂类)就成了简单工厂模式!
            v=d.runTimer(A,B,C);
            t=1000/v;
            System.out.println("平均速度: "+v+" km/h");
            System.out.println("运行时间:"+t+" 小时");
        } catch(Exception e) ...{
            System.out.println("class not found");
        }
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值