面向接口——打印机

面向接口

1.关于接口的理解。
接口从更深层次的理解,应是定义(规范,约束)与实现(名实分离的原则)的分离。
接口应有两类:第一类是对一个体的抽象,它可对应为一个抽象体;
第二类是对一个体某一方面的抽象,即形成一个抽象面;
一个体有可能有多个抽象面。
抽象体与抽象面是有区别的。

举个例子:三角插头只能插在三角插座上,不能插在两角插座上,这就是一个接口,是规范,是标准,插头的生产厂商只生产能插上的插头,这就是规范,按照一个标准来生产

1:首先创建两个接口:(可以理解为插座)
接口一:

package Dayin;

//墨盒的接口——理解为插座
public interface Box {
 
	String color();
}

接口二:

package Dayin;

//纸张的接口
public interface Paper {

	String type();
}

2:两个接口创建完毕
就该写接口的实现类了(可以理解为插头)

这是两个纸张的实现类:
纸张一:

package Dayin;

public class A4 implements Paper {

	public String type() {
		return "A4纸张";
	}
	
}

纸张二:

package Dayin;

public class B5 implements Paper {

	public String type() {
		return"B5纸张";
	}
}

3:然后就是两个墨盒的实现类:
墨盒一:

package Dayin;

public class Box_black implements Box {
 
	//黑色墨盒的实现类
	public String color()  {
		return"黑色墨盒";
				}
}

墨盒二:

package Dayin;

public class Box_cai implements Box {

	//彩色墨盒的实现类——理解为插头
	public String color()  {
		return"彩色墨盒";
	}
}

4:这是打印类:

package Dayin;

public class printer {

	Paper Paper;
	Box Box;
	
	//打印的类
	public printer(Paper Paper,Box Box) {
		this.Paper = Paper;
		this.Box = Box;
	}
	public String print() {
		return "使用"+Box.color()+"在"+Paper.type()+"打印";
	}
	
}

5:这个是测试结果:

package Dayin;

import javassist.expr.NewArray;
 
@SuppressWarnings("unused")
public class Test {

	public static void main(String[] args) {
		//使用黑色墨盒在A4纸张的大小打印
		printer printer = new printer (new A4(),new Box_black() );
		System.out.println(printer.print());
		
		  //使用彩色墨盒在B5纸张的大小打印
		 printer pr = new printer(new B5(), new Box_cai());
		  System.out.println(pr.print());
		
	}
	
	
}

好了,就是这样的,很好理解的,插座插头理解法——

发布了27 篇原创文章 · 获赞 45 · 访问量 2658

猜你喜欢

转载自blog.csdn.net/weixin_45746635/article/details/103689367