`

接口常用设计模式

阅读更多

适配器模式:
在日常生活中,会经常遇到一些适配器,例如笔记本电脑的变压器,究竟是电影的电源适配器。
比如说:电脑笔记本电脑只接受15V的电压,因此不能和直接220V的电源插座连接,电源适配器能够把220V的电压转换为15v,它是链接笔记本电脑何普通电源的桥梁。
在面向对象的领域,也采用适配器模式来进行接口的转换
适配器模式有两种方式:
1  继承实现方式
   SourceFC 和 targetFC 分别代表源接口和目标接口,在SourceFC 接口只有add(int a,int b) 方法。而目标接口中有add(int a,int b) 和addONE(int a) 方法。

  
         public class SourceImpl implements SourceFC {
            public  int add(int a ,int b) {
              return a+ b; 
            } 
         }        
   

 

public class TargetIMpl extends SourceImpl implements TargetFC {
     public int addONE (Int a) {
       return add(a,1);
     }
 }


(2) 组合实现方式

public class TargetImpl implements TargetFC {
   private SourceFC source;
   public TargetImpl(SourceFC source) {
      this.source = source ;
   }
   public int add(int a,int b) {
   return  source.add(a,b); 
  }
  public int addOne(int a) {
    return source.add(a,1);
  }
}


hibernate 提供了连接池的实现类DriverManagerConnectionProvider,这是hibernate默认的数据库连接池,此外hibernate还可以使用第三方提供的专业的数据库链接池产品,如C3P0链接池软件和DBCP连接池软件。但是这些第三方的连接池软件都有个字的API,他们并没有实现HIBERNATE指定的COnectionProvider接口。
例如DBCP连接池的API包括:
org.apache.commons.pool.KeyedObjectPoolFactory接口
org.apache.commons.pool.ObjectPool 接口



hibernate只会访问ConnectionProvider接口,这个接口有3个实现类,其中DBCPConnectionProvider和C3POConnectionProvider类是适配器,他们分别负责把DBCP和C3PO链接池转换为ConnectionProvider接口,这两个适配器都采用组合实现方式。

 

单例模式 键值的缓存方案

每一次进行键值的查询,有必要吗? 毕竟一个键的值只是一些序列号码,与其每接到一次请求就查询一次,

然后向客户端提供一个值,不如在一次查询中一次性地预先等级多个键值,然后连续多次的向客户端提供这些预定的键值。

这样一来 不是就节省了大部分不必要的数据库查询操作吗?

 

public class KeyGenerator {
     private static KeyGenerator keygen = 
                new KeyGenerator();
     private static final int POOL_SIZE = 20 ;
     private KeyInfo key;
     
    /**
     私有构造,保证外界无法直接实例化
    */
     private KeyGenerator() {
         key = new KeyInfo(POOL_SIZE);
    }
    
    public static KeyGenerator getInstance() {
      return keygen;
    }

    public synchronized int getNextKey() {
           return key.getNextKey();
   }   


}
 
public KeyInfo {
      private int keyMax ;
      private int keyMin ; 
      private int nextKey;
      private  int poolSize;
      
      public KeyInfo(int poolSize) {
           this.poolSize = poolSize ;
           retrieveFromDB();
      }
      
       public int getKeyMax() {
            return keyMax;
       }

       public int getNextKey() {
              if(nextKey > keyMax) {
                  retrieveFromDB();
               }
      }

}
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 大小: 183.1 KB
分享到:
评论

相关推荐

    c#几种常用的设计模式

    以下是对标题和描述中提到的几种常用C#设计模式的详细解释: 1. **单例模式(Singleton)**: - 单例模式确保一个类只有一个实例,并提供全局访问点。在C#中,通常通过私有化构造函数和静态成员来实现。这样可以...

    Jjava常用设计模式

    在这个Java常用设计模式的文档中,我们将深入探讨以下几种模式:单例模式、工厂模式、策略模式以及观察者模式。 **单例模式**是一种限制类实例化次数的模式,确保一个类只有一个实例,并提供一个全局访问点。在Java...

    常用设计模式及Java程序 pdf

    ### 常用设计模式及Java程序设计 #### 设计模式概述 设计模式是一种软件设计领域中的通用解决方案,用于描述解决常见设计问题的最佳实践。它不仅有助于提高代码的复用性和可读性,还能增强软件架构的灵活性和扩展...

    Java常用设计模式

    以下是关于标题和描述中提到的Java常用设计模式的详细解释: 1. **单例模式**:确保一个类只有一个实例,并提供一个全局访问点。在Java中,通常通过私有构造器和静态工厂方法实现。双检锁(Double-Check Locking)...

    23常用设计模式的UML

    这个压缩包文件"23常用设计模式的UML"提供了23个经典设计模式的统一建模语言(UML)表示,这对于理解和应用这些模式至关重要。 首先,我们要了解UML是一种标准化的图形表示法,用于系统分析、设计和建模。它通过...

    九种常用设计模式的应用!

    这篇博客“九种常用设计模式的应用!”探讨了九种常见的设计模式,并结合实际开发场景阐述了它们的应用。以下是对这些设计模式的详细介绍: 1. **单例模式**(Singleton):保证一个类只有一个实例,并提供一个全局...

    java中常用设计模式总结心得

    以下是对Java中常用设计模式的详细解释: 1. **单例模式**:单例模式确保一个类只有一个实例,并提供一个全局访问点。这种模式常用于配置管理、线程池或者数据库连接池等场景。实现方式有懒汉式(线程不安全)、...

    JAVA常用设计模式.ppt

    除了这些,还有其他设计模式没有在文件中详细提及,如抽象工厂模式(Abstract Factory),它可以提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们的具体类;单例模式(Singleton),确保一个类只有一个...

    JAVA23个常用设计模式(ppt下载)

    这23个常用的设计模式涵盖了创建型、结构型和行为型三大类别,是每一个Java开发者应当熟悉并掌握的基础知识。 1. **创建型设计模式**:主要包括单例模式、工厂方法模式、抽象工厂模式、建造者模式和原型模式。单例...

    常用设计模式demo代码-design.rar

    设计模式是软件工程中的一种最佳实践,用于解决在软件开发过程中常见的问题,提供了一套可重用的解决方案。这些模式都是经验丰富的开发者在实践中总结出来的,它们描述了在特定上下文中,如何创建、组合和使用对象以...

    .NET 23种常用设计模式

    ### .NET 23种常用设计模式 #### 概述 设计模式是在软件工程领域内被广泛采用的一种软件设计思路,旨在解决特定类型的问题。在.NET框架中,这些设计模式同样适用并能帮助开发者构建更加灵活、可扩展及易于维护的...

    五种常用的Java设计模式

    五种常用的Java设计模式 Java设计模式是软件开发中的一种重要概念,主要用来解决软件设计中的一些问题。下面将总结五种常用的Java设计模式,分别是单例模式、工厂模式、建造模式、_observer模式和迭代器模式。 ...

    JAVA常用设计模式

    Java中的设计模式是一种在软件开发过程中,为了应对特定问题而形成的通用解决方案...以上是关于Java中常用设计模式的详细解释,它们在实际编程中扮演着至关重要的角色,帮助开发者编写出高效、可扩展、易于维护的代码。

    常用设计模式java实现

    设计模式是软件工程中经过长期实践总结出的通用解决方案,它们描述了在特定情况下如何解决...通过阅读和学习提供的"常用设计模式java实现"压缩包中的例子,可以更好地理解和实践这些设计模式,从而提升Java编程技能。

    9种常用设计模式收集

    这里提到的"9种常用设计模式收集"涵盖了Java Web开发和Android开发中的一些核心设计原则,通过深入理解并应用这些模式,开发者可以提高代码的可读性、可维护性和可扩展性。 1. **单例模式**:单例模式确保一个类...

    android常用设计模式

    Android 设计模式详解 Android 设计模式是 software engineering 问题的解决方案,分为三类:创建型模式、结构型模式和行为型模式。创建型模式与对象的创建有关,结构型模式处理类与对象的组合,行为型模式对类或...

    常用的5种设计模式介绍

    设计模式概述和五种常用设计模式详解 设计模式是一种通用的解决方案,用于解决软件设计中常见的问题。它们提供了一种灵活、可维护、可扩展的设计方法,能够提高软件的质量和可维护性。在软件设计中,设计模式扮演着...

    几种常用的设计模式介绍总结

    单例模式是一种常用的创建型设计模式,它保证一个类仅有一个实例,并提供一个全局访问点。单例模式通常用于控制资源的共享访问,例如数据库连接池、日志管理器等。 #### 实现方式 - **构造函数私有化**:防止外部...

    常用的设计模式

    文档提到的Java设计模式对开发者来说是一套系统的编程思想,它强调的是面向对象的编程理念和接口编程,通过学习设计模式可以加深对面向对象概念的理解,并能够在实际开发中更加得心应手地编写出低耦合、高内聚的代码...

    Java常用设计模式.pdf

    本文主要介绍Java中的几种常用设计模式及其应用。 首先,设计模式可以根据它们的用途被分类为三大类:创建模式、结构模式和行为模式。 创建模式主要涉及对象的创建,包括工厂方法模式、抽象工厂模式、单例模式、...

Global site tag (gtag.js) - Google Analytics