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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马-王燚 中级黑马   /  2012-10-6 08:48  /  1228 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

模板方法模式(好处+概念)
                好处:将方法进行隐藏或者说不过多的暴露行为,提高代码的复用性
                我们在设计这个模型时发现 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 引擎转动");
                        }
                       
                }

评分

参与人数 1黑马币 +30 收起 理由
杨志 + 30

查看全部评分

0 个回复

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