zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    多线程
    Java命令行传参
    IO流
    集合
    Java基础语法
    常见的数据结构
    泛型
    java 集合重要概念 (Set 的存储内存解析)
    java 集合重要概念 (== 和 equals 解读)
    java 集合重要概念 (实现一个简单的斗地主)
  • 原文地址:https://www.cnblogs.com/springxian/p/13437585.html
Copyright © 2011-2022 走看看