文档详情

Java中单态设计模式的教学过程设计.doc

发布:2018-03-13约3.95千字共8页下载文档
文本预览下载声明
Java中单态设计模式的教学过程设计   摘要:单态设计模式在Java课程中很少涉及,本文讲述了怎样将此内容巧妙地引入到课堂中去,并通过教学过程的合理设计,使得学生不但能够轻松掌握此内容,还可以深入理解其它的相关内容。   关键词:单态设计模式;Java;教学   中图分类号:G642 文献标识码:A      1引言      设计模式是在大量的实践中总结和理论化之后优选的代码结构、编程风格以及解决问题的思考方式。要成为一名优秀的Java程序员,一般都需要掌握Java中的几种设计模式,单态设计模式就是其中之一。但能否把此作为Java程序设计这门课的教学内容的一部分,仍是一个值得商榷的问题。因为在众多学者看来,此内容复杂而难懂,因此在目前的教材中,尚未发现涉及此内容的。本文作者在教学中引入了单态设计模式的教学内容,结果证明只要对此内容的教学过程进行合理设计,学生不但可以掌握它,还可以深入理解掌握其它几方面的知识。      2单态设计模式的含义及作用      所谓类的单态设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且其它类可以通过某种方法访问该实例。其主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。生活中很多方面我们都要用到此设计模式,例如建立目录、数据库连接、资源管理器等。      3单态设计模式的教学过程设计      3.1单态设计模式的提出   在教学中我们没有直接讲解怎么设计单态程序,而是采取循序渐进的方法,不但让学生轻松掌握该知识,还对Java面向对象的特性有更深的认识。因此我们设计了如下的例1。   例1:   class Singleton   {   private int value; //注释1   public Singleton() //注释2    {   System.out.println(正在执行构造器....);   }    //注释3   public int getValue()    {   return value;   }   public void setValue(int value)    {   this.value = value;   }   }   class TestSingleton   {    public static void main(String args[])    { int v1,v2;    Singleton t1=new Singleton();    Singleton t2=new Singleton();    t1.setValue(3);    t2.setValue(5);    v1=t1.getValue();    v2=t2.getValue();    System.out.println(对象1的值为:+v1+\n对象2的值为:+v2);    }   }      通过此例可以让学生了解我们在设计一个类时,往往把其成员属性设置成private访问权限,使得其它类不能直接访问该成员属性,同时对外提供修改成员属性的方法setXXX和读取成员的方法getXXX,这些方法的访问权限是public的,可被所有其它类访问。这样做的目的是我们可以在修改成员的方法中加入更具体的更合理的控制逻辑,例如我们可以在修改人的年龄的方法setAge中限定只能将年龄设置为0到150之间的数,否则不允许修改。   让学生掌握以上知识后,教师可提出在上例中创建了类Singleton的两个实例,运行结果如图1所示。我们也可以创建更多该类的实例,但某些情况下若只能产生某个类的一个实例,那么能否做到呢?在提出该问题后,可列举生活中的例子,说明思考此问题的必要性,进而提出单态设计模式的概念。接下来就引导学生对上面的程序进行改进,来设计理解单态设计模式。      3.2单态设计模式的设计   产生某类的实例时需要调用该类的构造方法,若该构造方法可以被其他类直接访问,就不能限制在其他类中只产生一个实例。因此,我们首先必须将类的构造方法的访问权限设置为private,这样,此构造方法就只能在本类中使用来创建对象,而不能用new 操作符在类的外部产生类的对象了,但在类内部仍可以产生该类的对象。因此,应将例1中的注释2所在的行修改为private Singleton();,同时在注释1所在的行创建一个对象,即private static Singleton instance=new Singleton();。   经过以上的改进,在类的外部无法创建Singleton类的对象,但也无法得到类
显示全部
相似文档