Java基础之枚举及设计模式

 

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)抽象工厂模式

   

  

     

   

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值