面向接口

面向接口编程

开发系统时,主体构架使用接口,接口构成系统的骨架

这样就可以通过更换接口的实现类来更换系统的实现

采用面向接口编程的方式实现步骤如下:

第一步:

抽象出Java接口

                        分析:黑白、彩色打印机都存在一个共同的方法特征:print

                                   黑白、彩色打印机对print方法有各自不同的实现

                        结论:抽象出Java接口PrinterFace,在其中定义方法print

                        具体实现:

public interface PrinterFace {
       public void print(String content);
}

第二步:

实现Java接口

                        分析:已经抽象出Java接口PrinterFace,并在其中定义了print方法

                                   黑白、彩色打印机对print方法有各自不同的实现

                        结论:黑白、彩色打印机都实现PrinterFace接口,各自实现print方法

                        具体实现:

public class ColorPrinter implements PrinterFace {
    public void print(String content) {
 System.out.println("彩色打印:");
 System.out.println(content);
    }
}
public class BlackPrinter implements PrinterFace {
    public void print(String content) {
 System.out.println("黑白打印:");
 System.out.println(content);
    }
}

第三步:

使用Java接口                 

                        分析:主体架构使用接口,让接口构成系统的骨架

                        结论:更换实现接口的类就可以更换系统的实现

                        具体实现:

public class School3  implements Introduceable{
    private PrinterFace printer;  //打印机
    public void setPrinter(PrinterFace p) {
        this.printer = p;
    }
    public String detail() {
        return "这里是中心";
    }
    public void print(Introduceable intro){
        printer.print(intro.detail());
    }
}
public class Test {
    public static void main(String[] args) {
 // 创建中心实例
School3 school=new School3();
 //为该中心配备黑白打印机
 school.setPrinter(new BlackPrinter());
 school.print(school); 
 //为该中心配备彩色打印机
 school.setPrinter(new ColorPrinter());
 school.print(school);
    }
}

接口代码示例

//no.1  Student类
package com.yg.www;

public class Student implements Printer {
	private static String name;
	private static int age;

	public static void detail() {
		System.out.println("学员的姓名为:" + name + "年龄为:" + age + "。");
	}

	@Override
	public void extent() {
		System.out.println("具有良好的可拓展性和维护性");

	}
}


//no.2 Printer接口


package com.yg.www;

public interface Printer  {
	void extent();

}


//no.3 StudentTest测试类

package com.yg2.www;

public class StudentTest {
	public static void main(String[] args) {
		Student s=new Student();
		s.extent();
	}

}
//no.4
package com.yg.www;

public interface Constants {
	void max();
	void min();
	

package com.yg2.www;

public class ConstantsTest {
	public static void main(String[] args) {
		 Cong c=new  Cong();
		 c.max();
		 c.min();
	}

}

package com.yg.www;

public class Cong implements Constants {
public static final int Max=12345;
public static final int Min=1234;
@Override
public void max() {
	System.out.println("max的值为:"+Max);
	
}
@Override
public void min() {
	System.out.println("min的值为:"+Min);
	System.out.print(Max-Min);
}

}
package com.yg.www;

public class Course {
	private String name;
	private String price;
	public Course(String name, String price) {
		super();
		this.name = name;
		this.price = price;
	}
	int [][] a= {};
		
}

}

Comparable接口

Comparable接口中定义了比较方法,compareTo,返回值为int

当int值为正数,表示大于;为负数,表示小于;为0,表示等于

API 中很多类实现了该接口,很多方法借助该接口

通过使用Arrays.short( Object[ ] )方法,理解该接口的作用,进一步理解接口的作用

思想总结


猜你喜欢

转载自blog.csdn.net/ice_gang/article/details/80348348