接口应用

Author Avatar
Roojay 6月 16, 2017
  • 在其它设备中阅读本文章

接口定义一种标准:

  1. 通过interface定义;
  2. 函数都是抽象函数(只有函数没有函数体);
  3. 子类通过implements实现;对接口里面的抽象函数进行override;
    ```java
    /**

*定义一个Printer接口,通过HPPrinter,CanonPrinter两个子类去实现
*/
package printer;
//定义一个Printer接口
interface Printer{
public void open();
public void print(String s);
public void close();
}
//定义HPPrinter去implements Printer接口
class HPPrinter implements Printer{
@Override
public void open(){
System.out.println(“HPPrinter open”);
}
public void print(String s){
System.out.println(“HPPrinter print:” + s);
}
public void close(){
System.out.println(“HPPrinter close”);
}
}
//定义CanonPrinter去implements Printer接口
class CanonPrinter implements Printer{
@Override
private void clean(){
System.out.println(“clean”);
}
public void open(){
System.out.println(“CanonPrinter open”);
}
public void print(String s){
System.out.println(“CanonPrinter print:” + s);
}
public void close(){
this.clean();
System.out.println(“CanonPrinter close”);
}
}
//静态工厂方法模式
class PrinterFactory{
//定义一个静态函数getPrinter(int flag),返回值类型为Printer
public static Printer getPrinter(int flag){
Printer printer = null;
//根据用户选择生成新的对象,并向上转型为Printer类型
if (flag == 0){
printer = new HPPrinter();
}
else if(flag == 1){
printer = new CanonPrinter();
}
return printer;
}
}
//定义一个主函数,对函数进行调用
class Test{
public static void main(String args[]){
int flag = 1;
//工厂方法模式调用 类名+函数
Printer printer = PrinterFactory.getPrinter(flag);
printer.open();
printer.print(“Test”);
printer.close();
}
}



## 工厂方法 ##
#### 简单工厂模式 ####

> Java 简单工厂模式(Simple Factory Pattern)又叫静态工厂方法模式(Static FactoryMethod Pattern),通过专门定义一个类来负责创建其他类的实例(将生成对象的代码封装在工厂类中),被创建的实例通常都具有共同的父类。


![](https://raw.githubusercontent.com/roojay520/roojaycloud/images/printer.png)

The MIT License (MIT)
Copyright (c) 2019, Roojay.

本文链接:https://roojay.com/pages/75336bdc/