课外作业(2)接口+工厂方法 文件上传题 1. 接口作业题

简介: 课外作业(2)接口+工厂方法 文件上传题 1. 接口作业题

创建一个Cycle接口及其Unicycle、Bicycle和Tricycle实现。对每种类型的Cycle都创建相应的工厂,然后编写代码使用这些工厂。工厂产生的对象能够被管理,可以输出当前产生的对象总数。


写了我两个小时

package my;
public abstract class Factory
{
  int num=0;
  abstract int getNum();
  abstract Cycle produce();
  public static Factory createFac(String name){
        try
    {
          // 通过反射机制获取工厂类
          Class c = Class.forName(name);
      Factory factory = (Factory)c.newInstance();
      return factory;
    } catch (Exception e){
      e.printStackTrace();
    }
        return null;
  }
  public static void main(String[] args){
    //直接根据工厂名创建工厂很方便
    Factory unicyclefac=Factory.createFac("my.UnicycleFac");
    Cycle uc1=unicyclefac.produce();
    Cycle uc2=unicyclefac.produce();
    System.out.println(unicyclefac.getNum());
    Factory tricycleFac=Factory.createFac("my.TricycleFac");
    Cycle tc1=tricycleFac.produce();
    System.out.println(tricycleFac.getNum());
  }
}
 class UnicycleFac extends Factory{
  class Unicycle implements Cycle{
    private Unicycle(){}
  }
  @Override
  Cycle produce()
  {
    this.num++;
    return new Unicycle();
  }
  @Override
  int getNum()
  {
    return this.num;
  } 
}
class TricycleFac extends Factory{
  class Tricycle implements Cycle{
    private Tricycle(){}
  }
  @Override
  Cycle produce()
  {
    this.num++;
    return new Tricycle();
  }
  @Override
  int getNum()
  {
    return this.num;
  } 
}
class BicycleFac extends Factory{
  class Bicycle implements Cycle{
    private Bicycle(){}
  }
  @Override
  Cycle produce()
  {
    this.num++;
    return new Bicycle();
  }
  @Override
  int getNum()
  { 
    return this.num;
  } 
}

hnh111

package my;
public interface Cycle
{
  //由于题目并没有涉及Cycle的功能,所以不需要多配置属性和方法
}
相关文章
|
5月前
|
C++
几个实用的C++函数接口
几个实用的C++函数接口
|
13天前
|
网络协议 Java 数据格式
|
自然语言处理 数据库 C语言
【视频】入门实战:MiniOB 概述和环境搭建 | 学习笔记
快速学习【视频】入门实战:MiniOB 概述和环境搭建
【视频】入门实战:MiniOB 概述和环境搭建 | 学习笔记
|
5月前
接口接口
使用接口的时候,需要注意: 1.接口是没有静态代码块或者构造方法的。 2,一个类只能继承一个,但是一个类可以同时实现多个接口。 格式: public class MyInterfaceImpl implements MyInterfaceA,MyInterfaceB {} 3.如果实现类所实现的多个接口当中,存在重复的抽象方法,那么只需要覆盖重写一次即可。 4、如果实现类没有覆盖重写所有接口当中的所有抽象方法,那么实现类就必须是一个抽象类。 5如果实现类锁实现的多个接口当中,存在重复的默认方法,那么实现类一定要对冲突的默认方法进 行覆善重写。 6.一个类如果直接父类当中的方法,和接口当中的默认
56 5
|
C#
C# 接口
C# 接口
59 0
|
11月前
接口能玩的小花招
接口能玩的小花招
41 0
接口的使用
接口的使用
80 0
|
Java Maven
一文了解ConfigurationConditon 接口
在了解ConfigurationCondition 接口之前,先通过一个示例来了解一下@Conditional 和 Condition。
108 0
|
C# 索引
C#-接口
接口是一种用来定义程序的协议,它描述可属于任何类或结构的一组相关行为。接口可有方法、属性、事件和索引器或这四种成员的任何组合类型,但不能包含字段。接口只包含了成员的声明,在继承的类中进行实现。
110 0
|
自然语言处理 安全 数据库
Miniob drop table 实现解析 | 学习笔记
快速学习 Miniob drop table 实现解析
Miniob drop table 实现解析 | 学习笔记