接口应用之工厂方法的设计模式

定义一个用于创建对象的接口,让子类去决定实例化那个类,FactoryMethod使一个类实例化延迟到子类。

适用性

  • 1、当一个类不知道它所必须创建的对象的类的时候;
  • 2、当一个类希望由它的子类来指定它所创建的对象的时候;
  • 3、当类将创建的对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息化的时候。
  1. 创建一个接口 ,让其具有一个work方法,供学生和老师来实现;
interface Work {
  public void work();

}
  1. 创建两个实现Work接口的实现类 让其重写work方法,往里面添加功能;
class StudentWork implements Work{

   @Override
   public void work() {
       System.out.println("学生在学习...");
   }
}
class TeacherWork implements Work{

   @Override
   public void work() {
       System.out.println("老师在学习...");
   }
}
  1. 再创建一个IWorkFactory工厂模式的接口 ,让其有一个Work接口的返回值得方法;
interface IWorkFactory {
   Work getWork();
}
  1. 创建两个实现IWorkFactory的两个实现类 ,分别创建学生和老师两个工厂类,用来返回各自实例的Work对象的实例;
//实现IWorkFactory的接口
class StudentFactory implements IWorkFactory{

   @Override
   public Work getWork() {
       //返回一个Student的Work对象
       return new StudentWork();
   }
}
class TeacherFactory implements IWorkFactory{

   @Override
   public Work getWork() {
       //返回一个Teacher的Work对象
       return new TeacherWork();
   }
}
  1. 测试
public static void main(String[] args) {
       //实例化一个接口指向StudentFactory的实例
       IWorkFactory i1 = new StudentFactory();
       i1.getWork().work();//-->先指向StudentFactory,后指向StudentWork的work方法

       IWorkFactory i2 = new TeacherFactory();
       i2.getWork().work();//-->先指向TeacherFactory,后指向TeacherWork的work方法
   }

今天这是我第二天发博客,写的不好望各位大佬见谅。今天心情有点差,但是也不会阻碍我努力的步伐,加油!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个在努力为老板实现梦想的搬砖工

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值