第三周

1.泛型

参数化类型,在数据类型不确定时使用

定义格式<字母>

T  Type表示类型

K V    分别表示键值

E    元素element

?  表示不确定类型

 泛型类:声明时使用泛型 class Demo<T>

  泛型接口:接口中泛型字母只能使用在方法中,不能在全局常量

  泛型方法:public static <T> void test<T,a>(){     }

只能访问对象的信息,不能修改信∂息

  通配符:?extends 代表<=     ?super代表>=

2.单例

饿汉:1.创建类私有构造

2.创建该类型的私有静态实例,并直接初始化

3.创建公有静态方法返回静态实例对象

  懒汉:

  1. //懒汉式单例类.在第一次调用的时候实例化自己   
  2. public class Singleton {  
  3.     private Singleton() {}  
  4.     private static Singleton single=null;  
  5.     //静态工厂方法   
  6.     public static Singleton getInstance() {  
  7.          if (single == null) {    
  8.              single = new Singleton();  
  9.          }    
  10.         return single;  
  11.     }  
  12. }  

1.创建类私有构造

    2.创建静态该类实例对象

   3.公有静态方法,判空后初始化,返回实列对象 

      用双重检查锁进行二次判空

  1. public static Singleton getInstance() {  
  2.         if (singleton == null) {    
  3.             synchronized (Singleton.class) {    
  4.                if (singleton == null) {    
  5.                   singleton = new Singleton();   
  6.                }    
  7.             }    
  8.         }    
  9.         return singleton;   
  10.     }  


3.观察者模式

  定义对象一对多依赖关系,使得每当一个对象发生改变时,依赖于它的对象都会得到通知并更新

抽象目标(抽象类或者接口):把对所有观察者对象的引用保存在一个集合中。add,remove增删观察者,notify

具体目标:发生改变,通知观察者使用update,实现notify

抽象观察者(接口):得到通知时更新自己void update();

   具体观察者:实现update

回调:在A类中定义了一个方法,这个方法用到了一个接口和该接口中的抽象方法,但没实现。B类实现该抽象方法后传递给A,供A调用

4.工厂模式

简单工厂:缺点是在增加新的产品时,必须修改工厂类

工厂类:负责创建所有实例,可以被外界调用来创建所需对象。

抽象产品类:工厂类所创建对象的父类

具体产品类:工厂类创建的具体对象

 

   抽象工厂:拓展新的产品困难,需要修改抽象工厂的接口

抽象工厂类:具体工厂必须实现或者继承

具体工厂类:创建具体对象的类

抽象产品类:具体产品父类

具体产品类:工厂类创建的具体实例对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值