1.面向接口编程就是将程序中的业务逻辑模块给剥离出来,通过接口来对应不同的业务模块
2.interface 来定义接口,其本质就是一个抽象类,接口可以定义成员变量,但是有下列要求:
-
接口中的成员变量都是静态常量,可以直接通过接口来进行访问,但是不可以进行修改
-
成员变量在定义的时候就必须完成初始化
public interface MyInterface {
public int ID=0;
public String name="中国";
public void test();
}
-
通过implements关键字来指定实现类具体要实现的接口, 在实现类的内部需要对接口所有抽象方法进行实现,同时要求访问权限修饰符,返回值类型,方法名和参数列表必须都保持一致
-
一个类可以实现多个接口
public interface MyInterface1{
public int ID=0;
public String name="中国";
public void test();
}
public interface MyInterface2{
public void use();
}
public class InterfaceTest implements MyInterface1,MyInterface2{
public void test(){
System.out.println("这是Test");
}
@Override
public void use() {
System.out.println("这是use");
}
}
3.面向接口编程
-
某工厂A主要是生产产品A,然后产品A主要是由设备A生产;某工厂B主要是生产产品B,然后产品B主要是由设备B生产;某工厂C主要是生产产品C,然后产品C主要是由设备C生产;
-
思路:厂商就直接使用这些设备A,设备B,设备C的“父亲”——设备,这里就用到了接口的思想(先定义接口“设备”,再让设备A,设备B,设备C去继承这个接口),因为直接使用设备,最后调用的时候就把不同的设备A,设备B,设备C传入进来就可以了
1.这是所有设备的“父亲”
public interface Equipment {
public void work();
}
2.设备A继承
public class EquipmentA implements Equipment{
public void work(){
System.out.println("生产产品A");
}
}
3.设备B继承
public class EquipmentB implements Equipment{
public void work() {
System.out.println("这是设备B");
}
}
4.设备C继承
public class EquipmentC implements Equipment{
public void work() {
System.out.println("这是设备C");
}
}
5.工厂直接调用设备“父亲”,这样就为后面铺垫
public class Factory {
private Equipment equipment;
public void setEquipment(Equipment a){
this.equipment =a;
}
public Equipment getEquipment(){
return equipment;
}
public void work(){
System.out.println("设备开始运行....");
this.equipment.work();
}
}
public class Test {
public static void main(String[] args) {
EquipmentA equipmentA=new EquipmentA();
EquipmentB equipmentB =new EquipmentB();
EquipmentC equipmentC =new EquipmentC();
Factory factory=new Factory();
//根据不同需要传入不同设备
factory.setEquipment(equipmentA);
factory.setEquipment(equipmentB);
factory.setEquipment(equipmentC);
factory.work();
}
}
本文介绍了面向接口编程的概念及其在实际项目中的应用。通过定义抽象的接口,并让具体的业务类实现这些接口,使得代码更加灵活和可扩展。文章还提供了一个生产场景的例子,展示了如何通过接口实现设备与工厂之间的解耦。
2129

被折叠的 条评论
为什么被折叠?



