java几种常用设计模式简单示例Word文件下载.docx

上传人:b****5 文档编号:19100883 上传时间:2023-01-03 格式:DOCX 页数:40 大小:34.48KB
下载 相关 举报
java几种常用设计模式简单示例Word文件下载.docx_第1页
第1页 / 共40页
java几种常用设计模式简单示例Word文件下载.docx_第2页
第2页 / 共40页
java几种常用设计模式简单示例Word文件下载.docx_第3页
第3页 / 共40页
java几种常用设计模式简单示例Word文件下载.docx_第4页
第4页 / 共40页
java几种常用设计模式简单示例Word文件下载.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

java几种常用设计模式简单示例Word文件下载.docx

《java几种常用设计模式简单示例Word文件下载.docx》由会员分享,可在线阅读,更多相关《java几种常用设计模式简单示例Word文件下载.docx(40页珍藏版)》请在冰豆网上搜索。

java几种常用设计模式简单示例Word文件下载.docx

在内部产生本类的实例化对象 

public 

getInstance() 

通过静态方法返回instance对象 

return 

instance;

 

Singleton() 

将构造方法封装为私有化 

void 

print() 

System.out.println("

Hello 

World!

!

"

);

SingletonDemo 

main(String 

args[]) 

s1 

null;

声明对象 

s2 

s3 

Singleton.getInstance();

取得实例化对象 

s1.print();

调用方法 

s2.print();

s3.print();

[java]viewplaincopyprint?

调用方法 

classSingleton{

privatestaticSingletoninstance=newSingleton();

//在内部产生本类的实例化对象

publicstaticSingletongetInstance(){//通过静态方法返回instance对象

returninstance;

}

privateSingleton(){//将构造方法封装为私有化

publicvoidprint(){

System.out.println("

HelloWorld!

}

publicclassSingletonDemo{

publicstaticvoidmain(Stringargs[]){

Singletons1=null;

//声明对象

Singletons2=null;

Singletons3=null;

s1=Singleton.getInstance();

//取得实例化对象

s2=Singleton.getInstance();

s3=Singleton.getInstance();

s1.print();

//调用方法

s2.print();

s3.print();

一、单例模式的介绍

Singleton是一种创建型模式,指某个类采用Singleton模式,则在这个类被创建后,只可能产生一个实例供外部访问,并且提供一个全局的访问点

二、单例模式的实现

实现的方式有如下四种:

/** 

单例模式的实现:

饿汉式,线程安全 

但效率比较低 

*/ 

SingletonTest 

SingletonTest() 

final 

SingletonTest();

getInstancei() 

/** 

但效率比较低 

/**

*

*单例模式的实现:

饿汉式,线程安全但效率比较低

*/

publicclassSingletonTest{

privateSingletonTest(){

privatestaticfinalSingletonTestinstance=newSingletonTest();

publicstaticSingletonTestgetInstancei(){

饱汉式,非线程安全 

if 

(instance 

== 

null) 

null) 

饱汉式,非线程安全

privatestaticSingletonTestinstance;

publicstaticSingletonTestgetInstance(){

if(instance==null)

instance=newSingletonTest();

线程安全,但是效率非常低 

@author 

vanceinfo 

synchronized 

线程安全,但是效率非常低 

vanceinfo 

*线程安全,但是效率非常低

*@authorvanceinfo

*

publicstaticsynchronizedSingletonTestgetInstance(){

线程安全 

并且效率高 

getIstance() 

(SingletonTest.class) 

2.工厂设计模式

程序在接口和子类之间加入了一个过渡端,通过此过渡端可以动态取得实现了共同接口的子类实例化对象。

interface 

Animal 

定义一个动物的接口 

say();

说话方法 

Cat 

implements 

定义子类Cat 

@Override 

say() 

覆写say()方法 

我是猫咪,喵呜!

Dog 

定义子类Dog 

我是小狗,汪汪!

Factory 

定义工厂类 

getInstance(String 

className) 

定义接口对象 

("

Cat"

.equals(className)) 

判断是哪个子类的标记 

Cat();

通过Cat子类实例化接口 

Dog"

Dog();

通过Dog子类实例化接口 

a;

FactoryDemo 

main(String[] 

args) 

Factory.getInstance(args[0]);

通过工厂获取实例 

(a 

判断对象是否为空 

a.say();

interfaceAnimal{//定义一个动物的接口

publicvoidsay();

//说话方法

classCatimplementsAnimal{//定义子类Cat

@Override

publicvoidsay(){//覆写say()方法

classDogimplementsAnimal{//定义子类Dog

classFactory{//定义工厂类

publicstaticAnimalgetInstance(StringclassName){

Animala=null;

//定义接口对象

if("

.equals(className)){//判断是哪个子类的标记

a=newCat();

//通过Cat子类实例化接口

}

a=newDog();

//通过Dog子类实例化接口

returna;

publicclassFactoryDemo{

publicstaticvoidmain(String[]args){

a=Factory.getInstance(args[0]);

//通过工厂获取实例

if(a!

=null){//判断对象是否为空

a.say();

3.代理设计模式

指由一个代理主题来操作真实主题,真实主题执行具体的业务操作,而代理主题负责其他相关业务的处理。

比如生活中的通过代理访问网络,客户通过网络代理连接网络(具体业务),由代理服务器完成用户权限和访问限制等与上网相关的其他操作(相关业务)。

Network 

定义Network接口 

browse();

定义浏览的抽象方法 

Real 

真实的上网操作 

browse() 

覆写抽象方法 

上网浏览信息!

Proxy 

代理上网 

network;

Proxy(Network 

network) 

{// 

设置代理的真实操作 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1