1.枚举
语法格式:
public enum 枚举类命{
}
使用场景:适用于对象个数固定且有限,比如性别. 星期天数。
注意:枚举类型的构造方法是私有的 ,不能被继承,可以有构造方法,方法,属性。
举例:
创建枚举类型 : 使用其中的方法:
2.设计模式(design pattern )
设计模式是程序员总结出来的实用的编程套路,实现特定的功能时,让代码更加优化。
破坏单例设计模式的方法:
(1)利用反射调用私有构造方法创建多个实例对象。
(2)使用反序列化破坏单例设计模式。
常见的设计模式:
1单例设计模式(一共有四种,虚拟机中只有一个实例对象)
(1) 一开始就创建好类的实例对象。属于饿汉式。
(2)先判断是否有实例对象,没有才创建。属于懒汉式。
(3)枚举类型的单例设计模式。属于饿汉式。
(4)最佳的懒汉式,利用静态内部类,类之加载一次。
测试
2享元模式(flyweight)
使用已有给对象,而不是创建新的对象。 Integer byte long short Character 都有连接池,连接池中方的是可重用的对象。
以Integer举例,其连接池范围是-128到127 ,创建对象时,在其连接池范围中已有对象不会新创建,超出就连接新的创建
3原型模式(prototype)
根据已有的对象来克隆创建新的对象,是浅拷贝,复制的是已有对象的地址,而深拷贝复制的是全新的。因此改变拷贝而来的对象引用类型时,已有的对象值会改变。
前提:
4 建造器模式(Builder)
我们创建对象的过程更为灵活。适用于一步一步构建一个较为复杂的对象
以Person类型为例。用Builder灵活创建,Person属性可以选择性的给定。
5
5 迭代器模式(iterator)
定义:以一种一致的对集合内的元素进行遍历,而不用在乎集合内的数据结构在集合中比较常用,以ArrayList为例,用Collections排序时,使用迭代器模式遍历集合。
6策略模式(Strategy)
常用于 集合或数组的排序算法。排序算法是固定的,排序的规则不固定 。排序的规则抽取出来,形成比较器接口(Comparator),不同比较器的实现就称为策略。
open close 开闭原则:算法不能改-- 体现的是close原则,比较器可以改 -- 体现的是open原则
7工厂模式
分为简单工厂模式,工厂模式,抽象工厂模式。
(1)简单工厂模式
(2)工厂模式
(3)抽象工厂模式