java设计模式

2.单例设计模式:

          原理:
            懒汉式:私有化构造,直接new对象,对外提供获取方法;
            饿汉式:私有化构造,先定义对象,但是不初始化。在获取方法里面判断对象是否为空,为空再新建。
                        (饿汉式容易出现线程安全问题,获取方法上要加synchronize,一般不用饿汉式,两种方法的构造都要加static,因为要让外界直接调用)

3.工厂设计模式:

            原理:抽取各个对象类的共性,建立一个抽象的父类,再用一个工厂对调用方法加工(工厂获取客户需求,内部调用对象并反馈)。

4.模板设计模式:

            原理:做一个模板,用子类继承模板,并覆盖部分方法,以实现特殊功能。

5.适配器设计模式:

            原理:先做一个接口,然后用一个适配器实现接口中所有的方法,但是方法的内容为空,当有需要用到这些方法的时候,再新建一个类继承适配器并覆盖需要用到的方法

6.反射:

            原理: 反射就是把java中相应的成分(构造方法 成员 方法)映射成相应的类.

                1.    构造方法         反射成       constructor类
                           ①  获取单个用 get Constructor ( 参数类型.参数名 如:原构造是 String a 在这里变为---> String.class )方法,获取多个用 get Constructor
                              ②  如果要获取私有的,用 getDeclared Constructors (),
                                                                                     getDeclared Constructor (参数类型.class,...)   如:原构造是 String a 在这里变为---> String.calss
                                                                                   私有需要暴力反射:  constructor.setAccessible(true);
                                         
                                    例子:   演示 获取空参构造并实例。(里面是可以加参数的,下面的例子是空参的例子。)
                                     Constructor  constructor  =  class1 . getConstructor ();
                          Object  obj  =  constructor . newInstance ();实例化
2.   成员                反射成       field类 
                              ①  获取单个用getField(里面加需要获取的成员名,+加引号)方法,获取多个用getFields
                                  ②   如果要获取私有的,用 getDeclaredFields(), getDeclaredField("成员名")
                                     获取单个并实例化,用
                                                      1. 获取空参构造实例。
                                      Constructor  constructor  =  class1 . getConstructor ();
                            Object  obj  =  constructor . newInstance ();
                                               2.通过set,给空参实例赋值成员属性。
                                   field . set ( obj ,   "上海" );
                              System . out . println ( obj );
                             
                    3.  方法            反射成        method类
                  同上:  getDeclaredMethod, getDeclaredMethods, getMethod, getMethods



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值