Java中的单例、策略、适配器模式

来源:互联网 发布:知乎 玄幻小说推荐 编辑:程序博客网 时间:2024/06/05 16:59

单例设计模式

使用单例设计模式的原因很简单也很容易实现:保持某个类有且仅有一个对象存活于整个程序的生命周期中,不允许创建该类的新的任何对象或者通过任何方式创建(克隆或者继承也不允许)。
- 因此,在java中实现的时候,因为将其的构造函数设为private ,可以成功阻止创建该对象或继承该类。同时在该类中设置一个静态的该类的对象,并设置好访问该对象的方法即可。

策略设计模式

广泛使用java中的interface来实现。举个最简单的例子来形容策略模式:sort(array,compare); 这里sort函数中为了实现排序,sort中排序的算法是固定的,但是排序的策略(如何升序、如何降序等)是根据应用程序实际的情况所确定的。所以把compare称之为策略,即可变的算法中可变的部分。或者方法过程中可变的部分,通过外部传入的方式来实现同一份代码灵活适应不同的策略。Java中广泛使用interface 接口的形式来实现策略模式。不同的策略只要实现了interface接口,那么就能够适应于同一份代码中。

适配器模式

为了实现灵活的代码复用和可扩展性,往往我们会大量使用面向接口的编程。但是某些已有的库中,某些类也需要被使用,但是却无法更改,但是也希望能够扩展其到你的接口之下,实现统一调用。这时候你就需要实现一个适配器类,并让这个适配器类实现你的接口,你的适配器接受你库中无法更改的类,在统一的接口函数之下调用该类的具体方法。例如你有一个A无法更改的类,中有一个print方法。而有一个函数printClass(Printable p){p.print()};由于A类是无法更改的,无法让其实现Printable接口,于是你设置一个适配器class Adapter implements Printable { public Adapter(A a){this.a = a}; void print(){a.print()}}

原创粉丝点击