设计模式初涉

1、 封装:

    将应用程序共性【确定】的部分,进行封装,非共性的部分封装在各自Class中。封装的方式:

            1)    局部封装

                      A、 功能,使用函数封装;

                     B、 静态方法或静态属性,可以用类来调用,避免产生不必要的对象。工具类不使用特有数据。 

           2)    类封装

                        A、构造一个专门提供方法的方法类,由于没有属性域,对象产生没有意义,为了避免堆内存中出现这种对象:

                             a.  将构造函数私有化(使不能产生对象);new constructor();

                               b. 将构造函数静态化,可以用类名直接调用。

                       B、为不确定的功能,建立接口,提供范式,让子类实现各自的功能。

                       C、建立抽象类,可以同时规定共同部分,和通过抽象方法规定不确定部分的范式。缺点是继承只允许一个父类。接口不限。

               抽象出共性建立函数。

                       Public Static void Function(Cat c){System.out.println(“fsfa”);}

                                     Function(new Cat());

                    多态的优势

                            Public Static void function(Animal a){System.out.println(“fsfs”);}

                            Function(new Cat());

                            Function(new Dog());提高代码复用性,和扩展性。


2、  单例设计模式:(保证对象的唯一性,是操作原子事物化)

                   先初始化对象,调用函数时初始化对象两中方式。

                      A、禁止其他程序建立本类对象 【构造函数私有化】

                     B、在本类中,自定义一个对象

                     C、对外提供访问方法。

 

                      延时加载: 类在加载时没有立即创建对象,调用是才初始化。

3、   装饰设计模式:{解决继承的结构臃肿问题}

                 为增强某个类的功能,重新定义一个新类,将原类的对象传给该类。

                          继承方式获得原功能:造成继承体系臃肿

                          装饰模式: 将原类对象作为参数传给装饰类,并增加处理功能。

                            仍然需要优化的地方

                          增加的新处理方式,怎样做到更高级别的抽象,否则,装饰类仍然要添加新的处理方式。

 

4、  模板方法设计模式:

                 解决的问题:当功能内部一部分实现时确定,一部分实现时不确定的。这时可以把不确定的部分暴露出去,让子类去实现。

 abstractclass GetTime{
    public final void getTime(){   //此功能如果不需要复写,可加final限定
        long start = System.currentTimeMillis();
        code();    //不确定的功能部分,提取出来,通过抽象方法实现
        long end = System.currentTimeMillis();
        System.out.println("毫秒是:"+(end-start));
    }
    public abstract void code(); //抽象不确定的功能,让子类复写实现

}
classSubDemo extends GetTime{
    publicvoid code(){    //子类复写功能方法
        for(int y=0; y<1000; y++){
            System.out.println("y");
        }
    }

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值