Java day12【第二十章】接口的定义与使用
【第二十章】接口的定义与使用
五.代理设计模式(Proxy):
代理设计模式的主要功能是可以帮助用户将所有的开发注意力只集中在核心业务功能上
例如:我肚子饿了,我会思考如何可以吃到东西。
范例:实现代理:
interface IEat { public void get(); } class EatProxy implements IEat { private IEat eat; //确定代理项 public EatProxy(IEat eat) { this.eat = eat; } public void prepare(){ System.out.println("【代理主题】开始准备食材"); } public void cook(){ System.out.println("【代理主题】开始加工食材"); } public void clear(){ System.out.println("【代理主题】开始清理餐具"); } public void get(){ this.prepare(); this.cook(); this.eat.get(); this.clear(); } } class EatReal implements IEat { public void get(){ System.out.println("【真实主题】开始品尝"); } } public class tsy { public static void main(String args[]) { IEat eat = new EatProxy(new EatReal()); eat.get(); } }
代理设计模式的特点是:一个接口有俩个子类,一个子类是真实业务操作,另外一个子类主题是代理业务操作。没有代理业务操作,真实业务无法进行(吃饭)。
六.抽象类和接口的区别:
在实际的开发之中可以发现抽象类和接口类的定义形式是非常相似的,这一点从JDK1.8开始特别明显了。但是这俩个依然有着明显的定义区别与使用区别。
No | 区别 | 抽象类 | 接口 |
1. | 关键字定义 | abstract class 抽象类名称{} | interface 接口类名称{} |
2. | 组成 | 构造方法,普通方法,全局常量,静态方法,普通成员 | 抽象方法,全局常量,静态方法,普通方法 |
3. | 权限 | 各种权限定义 | public |
4. | 子类使用 | 子类可以通过extends继承一个抽象类 | 子类可以通过implements实现多个接口 |
5. | 俩者关系 | 抽象类可以实现若干个接口 | 接口不允许继承抽象类,但是允许继承多个父接口 |
6. | 使用 |
1.抽象类或接口必须定义子类 2.子类一定要覆写抽象类或子类中的全部抽象方法 3.通过子类的向上转型实现抽象类或接口对象的实例化 |
当接口和抽象类都可以使用的情况下优先要考虑接口,因为接口可以避免子类的单继承,另外从正常的设计角度,也需要先从接口来进行项目的整体设计。