A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

个人对这几种设计模式的总结 ,希望对大家有帮助
简单工程模式:
前提  :   定义了一个父类   里面是子类共有的方法      子类  重写了父类中的方法   
需求   :  增加了子类 也要重写父类中的方法,  因此在调用子类时都需要单独的创建对象    很麻烦
解决  :   创建一个工厂  返回值类型为 父类类型    里面定义一个静态方法   可以根据传递进来的String参数  进行判断 分别创建对象
                     这样在测试类中如果要调用某一子类的方法的话,就可以创建工程的对象用工厂类里的方法就可以创建该子类的对象了   直接变换这个方法的参数就可以创建你想要的对象了     然后就可以调用子类对象了
抽象工厂模式:


前提  :   定义了一个父类   里面是子类共有的方法      子类  重写了父类中的方法   
需求   :  增加了子类 也要重写父类中的方法,  因此在调用子类时都需要单独的创建对象    很麻烦
解决           定义一个工厂接口           里面定义一个创建子类对象的方法       这样这个方法就是抽象的   
                                                               增加了子类的话,同时要增加一个子类并实现抽象类工厂,重写各自的创建对象的方法,
                                这样在以后增加了子类时   直接同时增加一个子类的工厂类 去实现抽象工厂类 并重写创建对象的方法  
                                在调用子类的方法时   创建子类工厂的对象   在调用子类的方法
单例模式:  就是在运行中只允许创建一个对象  节省内存
       饿汉式
    私有化构造       定义一个私有的静态对象          提供一个公共的返回值类型为类名类型的静态对外的方法,方法返回值就为创建好的对象   
      别的类在调用时  直接通过类名调用这个方法 就可以用这个对像了  不用在重新创建对象了
    懒汉式
    私有化构造   定义一个私有的静态 属性为类名的成员变量 赋值为空            提供一个对外的静态的方法,返回值类型为类名类型,在方法中进行判断  如果本类对像  为空则 返回一个对象            否则返回为空
     别的类在调用时  直接通过类名调用这个方法 此时 创建了对象     在多线程中  要把次方法定义一个同步方法    可以加一个synchonized     
模板设计模式:
    定义一个抽象的类   里面是写好的方法 模板  比如  计算一个程序运行的时间   
   我们在计算某个程序的运行时间时  只需要将这个程序继承 这个抽象类  重写他里面的程序的方法
   用多态创建对象  这样就可以这行父类中的方法的同时 执行子类里重写的方法了







0 个回复

您需要登录后才可以回帖 登录 | 加入黑马