JAVA学习笔记6------接口,工厂模式

接口当一个抽象类中的方法 全都是抽象方法的时候 这时可以将该抽象类
用另一种形式定义和表示 就是 interface接口
接口内除了抽象方法之外 还有全局常量
接口常见成员  这些成员均有固定修饰符
1 抽象方法  public static final
2 全局常量  public abstract

接口中成员都是公共的权限
定义接口的关键字不是class 是interface

interface Demo{

    public static final int NUM = 4;

    abstract void show();
    abstract void show2();
}
class DemImp implements Demo{
    public void show()
    {
    
    }
    public void show2()
    {
    

    }

}

public class InterfaceDemp {

    public static void main(String[] args) {
        //三个输出都对 static 常量当然可以直接调用
            DemImp d = new DemImp();
            System.out.println(d.NUM);
            System.out.println(DemImp.NUM);
            System.out.println(Demo.NUM);
    }

}


接口就应该去实现implements
继承可以拿一些我只需要的 但实现是你有的我全部都要拿过来
类与类之间是继承关系 类与接口之间是实现关系


多接口
java中不直接支持多继承 因为会出现调用的不确定性 
所以java将多继承进行改良 在java中变成了多实现
一个类可以实现多个接口
接口细节
一个类在继承另一个类的同时 还可以实现多个接口

class Test2 extends Q implements A,Z
{
    
}


接口出现避免了单继承的局限性 但接口扩展了功能让其变得更强大
接口与接口之间是继承关系 而且接口可以多继承

interface QQ extends CC,MM {
    

}

接口特点
对外暴露的规则
接口是程序的功能扩展
接口的出现降低耦合性
接口可以用来多实现接口中的任何域自动式final和static的、
接口是实现多重继承的途径  而生成遵循某个接口的对象的典型方式就是工厂方法设计模式
与直接调用构造器不同 我们在工厂对象上调用的是创建方法 而该工厂对象将生成接口的某个实现的对象 
工厂模式 主要用来实例化有共同接口的类 可以动态决定应该实例化哪一个类

public interface Product{}
//实现了产品接口的产品类
public class Washer implements Product{  
   public Washer(){  
       System.out.println("洗衣机被制造了");  
   }  
}  
  
public class Icebox implements Product{  
   public Icebox(){  
       System.out.println("冰箱被制造了");  
   }  
}  
  
public class AirCondition implements Product{  
   public Icebox(){  
       System.out.println("空调被制造了");  
   }  
}
//工厂类 

public interface Factory(){
    public Product create();//创建方法

}
//工厂方法核心 具体差个内建产品对象的具体工厂类
//创建洗衣机的工厂  
public class CreateWasher implements Factory{  
    public Product create(){  
          return new Washer();  
    }  
}  
  
//创建冰箱的工厂  
public class CreateIcebox implements Factory{  
    public Product create(){  
          return new Icebox();  
    }  
}  
  
//创建空调的工厂  
public class CreateAirCondition implements Factory{  
    public Product create(){  
          return new AirCondition();  
    }  
}  

public class Business(){
    public static void produceProduct(Factory factory){
        Product p = factory.create();

    }
    public static void main(String[] args){
        produceProduct(CreateWasher);
        produceProduct(CreateIcebox);
    }
}


工厂方法则把不同的产品放在实现了工厂接口的不同工厂类里面,这样就算其中一个工厂类出了问题,其他工厂类也能正常工作,
互相不受影响,以后增加新产品,也只需要新增一个实现工厂接口工厂类,就能达到,不用修改已有的代码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值