常用设计模式

来源:互联网 发布:java 日志管理系统 编辑:程序博客网 时间:2024/05/19 17:05

         刚刚开始学习JAVA的事后就经常听到高手说“学习JAVA应该站在设计者的角度去学习, 因为学到后来会发现仅仅实现某些功能是很简单的事情, 但是如何使程序的扩展性、通用性、维护性尽可能地高这则显真功夫了”。 也听说过Gof的《设计模式》但是没怎么看懂, 先谈谈常用的设计模式

————————创建型模式————————————————

 1、 单例模式(Singleton)

       考虑到内存的大小和对象效率, 有时候会希望在一个JVM内, 某些类只有一个实例存在, 使用Singleton模式可以实现

       核心代码如: public static Singleton instance = new Singleton();

                                public static Singleton getInstance(){  return instance;  }

                                private Singleton(){  }   //核心: 似有构造函数, 保证类智能通过getInstance()方法返回实例

      注意: 使用的时候要注意考虑线程安全的问题, 由于类在内存只有一个实例, 如果这个类有其他的非静态私有变量, 当多个线程同时引用这个实例的事后,就有可能出现数据不同步的问题。如果这个类都由方法组成就不会存在问题, 故这个模式一般应用在单线程的程序中。

 

 2、 工厂模式(Factory)

        编码时, 一般都是通过New 运算符创建对象的, 但是在某些情况下, 例如: 根据替换OO设计原则, 有时希望一个类由它的子类来动态指定它的创建对象; 又或者我们在编码的事后只有一个业务接口, 而不知道它具体的实现类是什么这就麻烦了。针对这些情况Factory模式就很适合了, 把创建对象的任务交给Factory处理。

     ^_^  ^_^  关于例子吗,  如我们在配置连接池的数据源时就用到了工厂模式。

 

3、  构建模式(Builder)

     Builder模式的目的是将一个复杂对象的构建与它的表示分离, 使得同样的构建过程可以创建不同的表示, 其适用性主要有如下两点:

    a、 当创建复杂对象的算法应该独立于该对象的组成部分以及他们的装配方式时

   b、 当构建错成必须允许被构造的对象有不同的表示时。

    至于例子吗, ^_^  ^_^  就是听马老师讲的  电脑装机的例子。

————————————————待续————————————————

原创粉丝点击