黑马程序员技术交流社区

标题: 设计模式之模板模式 [打印本页]

作者: 黑马-王燚    时间: 2012-10-6 08:48
标题: 设计模式之模板模式
模板方法模式(好处+概念)
                好处:将方法进行隐藏或者说不过多的暴露行为,提高代码的复用性
                我们在设计这个模型时发现 start点火    stop 停止  引擎转动这三个行为是变化的,需要由具体子类来实现,行驶这个行为是固定,所有子类中都一样。我们可以在父类中定义,将其实现,直正执行时,
还是去执行具体的子类中的行为. 这种方式也是设计模式中的一种,模板方法模式.
               
                //创建悍马模型
                abstract class HM
                {
                        //打火
                        abstract void start();
                        //停止
                        abstract void stop();
                        //引擎转动
                        abstract void yinQingBoom();
                        //行驶
                        void run(){       
                                //真正调用时还时执行子类中的重写的方法
                                this.start();
                                this.yinQingBoom();
                                this.stop();
                        }
                }

                class H1 extends HM
                {
                        //打火
                        void start(){
                               
                                System.out.println("H1 打火");
                        }
                        //停止
                         void stop(){
                                System.out.println("H1 停止");
                        }
                        //引擎转动
                         void yinQingBoom(){
                                System.out.println("H1 引擎转动");
                        }
                       
                }


                class H3 extends HM
                {
                        //打火
                        void start(){
                               
                                System.out.println("H3 打火");
                        }
                        //停止
                         void stop(){
                                System.out.println("H3 停止");
                        }
                        //引擎转动
                         void yinQingBoom(){
                                System.out.println("H3 引擎转动");
                        }
                       
                }





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2