8.5Java入门--->第十三节

1、制定统一规范(是什么就必须能做什么)

接口完全支持多继承,实现多接口

extends  拓展

implements 实现

接口只能定义抽象方法、类方法、默认方法(默认public static修饰),

只能定义全局静态常量(默认public static final)

接口不可以包含构造器和初始化代码块、不可以实例化、不能有变量

接口可以包含成员变量、方法、内部类

实现类必须实现接口中的所有抽象方法

模板方法设计模式

抽象类体现的是一种模板模式,抽象类作为子类的公用模板,子类在抽象类的基础上进行改造和扩展,但是子类总会保留抽象类的行为方式

解决的问题:当功能内部实现是确定的,一部分是不确定的,不确定的部分暴露出去让子类去实现

一个抽象父类,父类提供多个子类的公用方法

工厂方法设计模式

定义一个用于创建对象的接口,让子类决定实例化哪一个类

1.当一个类不知道他所创建的对象的类的时候

2.当一个类希望有他的子类来指定所创建的对象的时候

3.当类创建对象的职责委任给多个子类中的某一个,并希望**********************************

以上三点没啥用

根据传递的参数不同,具有不同的行为

public class TestFactoryMethod {
    public static void main(String[] args) {
        Android android1 = (Android)getMobile(new AndroidFactory());
        
        Iphone i1 = (Iphone)getMobile(new IPhoneFactory());
    }
    //策略模式:根据传递的参数不同具有不同的行为的方法(包含不变的部分,变化的部分就是策略)
    public static Mobile getMobile(MobileFactory factory) {
        return factory.createMobile();
    }
}

由 getmobile 方法决定创建何种mobile

传入工厂种类,进入工厂,返回,具体类型具体转化

 以安卓为例

3.代理模式

 为其他对象提供一种代理以控制这个对象的访问

4.单例模式

定义一个类,这个类只能创建一个对象

private int age;
    private int lev;//0-5
    private static Girl gril;
    
    private Girl(int age,int lev) {
        this.age =age;
        this.lev = lev;
    }
    public static Girl getGril(int age,int lev) {
        if(gril==null) {
            gril = new Girl(age,lev);
        }
        return gril;
    }

调用getGril方法只能创建一个Gril

原文地址:https://www.cnblogs.com/springxian/p/13437585.html