ImageVerifierCode 换一换
格式:DOCX , 页数:40 ,大小:34.48KB ,
资源ID:6101974      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6101974.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(java几种常用设计模式简单示例.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

java几种常用设计模式简单示例.docx

1、java几种常用设计模式简单示例java几种常用设计模式简单示例 设计模式Java1.单例设计模式 所谓单例设计模式简单说就是无论程序如何运行,采用单例设计模式的类(Singleton类)永远只会有一个实例化对象产生。具体实现步骤如下: (1) 将采用单例设计模式的类的构造方法私有化(采用private修饰)。 (2) 在其内部产生该类的实例化对象,并将其封装成private static类型。 (3) 定义一个静态方法返回该类的实例。 示例代码如下:Java代码 classSingleton privatestaticSingletoninstance=newSingleton();/在内部

2、产生本类的实例化对象publicstaticSingletongetInstance()/通过静态方法返回instance对象returninstance; privateSingleton()/将构造方法封装为私有化 publicvoidprint() System.out.println(HelloWorld!); publicclassSingletonDemo publicstaticvoidmain(Stringargs) Singletons1=null;/声明对象Singletons2=null;/声明对象Singletons3=null;/声明对象s1=Singleton.ge

3、tInstance();/取得实例化对象s2=Singleton.getInstance();/取得实例化对象s3=Singleton.getInstance();/取得实例化对象s1.print();/调用方法 s2.print();/调用方法 s3.print();/调用方法 java view plaincopyprint?classSingletonprivatestaticSingletoninstance=newSingleton();/在内部产生本类的实例化对象publicstaticSingletongetInstance()/通过静态方法返回instance对象returni

4、nstance;privateSingleton()/将构造方法封装为私有化publicvoidprint()System.out.println(HelloWorld!);publicclassSingletonDemopublicstaticvoidmain(Stringargs)Singletons1=null;/声明对象Singletons2=null;/声明对象Singletons3=null;/声明对象s1=Singleton.getInstance();/取得实例化对象s2=Singleton.getInstance();/取得实例化对象s3=Singleton.getInsta

5、nce();/取得实例化对象s1.print();/调用方法s2.print();/调用方法s3.print();/调用方法class Singleton private static Singleton instance = new Singleton();/ 在内部产生本类的实例化对象 public static Singleton getInstance() / 通过静态方法返回instance对象 return instance; private Singleton() / 将构造方法封装为私有化 public void print() System.out.println(Hello

6、 World!); public class SingletonDemo public static void main(String args) Singleton s1 = null; / 声明对象 Singleton s2 = null; / 声明对象 Singleton s3 = null; / 声明对象 s1 = Singleton.getInstance(); / 取得实例化对象 s2 = Singleton.getInstance(); / 取得实例化对象 s3 = Singleton.getInstance(); / 取得实例化对象 s1.print(); / 调用方法 s2.

7、print(); / 调用方法 s3.print(); / 调用方法 一、单例模式的介绍 Singleton是一种创建型模式,指某个类采用Singleton模式,则在这个类被创建后,只可能产生一个实例供外部访问,并且提供一个全局的访问点 二、单例模式的实现 实现的方式有如下四种: Java代码 /* * *单例模式的实现:饿汉式,线程安全但效率比较低 */publicclassSingletonTest privateSingletonTest() privatestaticfinalSingletonTestinstance=newSingletonTest(); publicstaticS

8、ingletonTestgetInstancei() returninstance; java view plaincopyprint?/*单例模式的实现:饿汉式,线程安全但效率比较低*/publicclassSingletonTestprivateSingletonTest()privatestaticfinalSingletonTestinstance=newSingletonTest();publicstaticSingletonTestgetInstancei()returninstance;/* * * 单例模式的实现:饿汉式,线程安全 但效率比较低 */public class S

9、ingletonTest private SingletonTest() private static final SingletonTest instance = new SingletonTest(); public static SingletonTest getInstancei() return instance; Java代码 /* *单例模式的实现:饱汉式,非线程安全 * */publicclassSingletonTest privateSingletonTest() privatestaticSingletonTestinstance; publicstaticSinglet

10、onTestgetInstance() if(instance=null) instance=newSingletonTest(); returninstance; java view plaincopyprint?/*单例模式的实现:饱汉式,非线程安全*/publicclassSingletonTestprivateSingletonTest()privatestaticSingletonTestinstance;publicstaticSingletonTestgetInstance()if(instance=null)instance=newSingletonTest();returni

11、nstance;/* * 单例模式的实现:饱汉式,非线程安全 * */public class SingletonTest private SingletonTest() private static SingletonTest instance; public static SingletonTest getInstance() if (instance = null) instance = new SingletonTest(); return instance; Java代码 /* *线程安全,但是效率非常低 *authorvanceinfo * */publicclassSinglet

12、onTest privateSingletonTest() privatestaticSingletonTestinstance; publicstaticsynchronizedSingletonTestgetInstance() if(instance=null) instance=newSingletonTest(); returninstance; java view plaincopyprint?/*线程安全,但是效率非常低*authorvanceinfo*/publicclassSingletonTestprivateSingletonTest()privatestaticSing

13、letonTestinstance;publicstaticsynchronizedSingletonTestgetInstance()if(instance=null)instance=newSingletonTest();returninstance;/* * 线程安全,但是效率非常低 * author vanceinfo * */public class SingletonTest private SingletonTest() private static SingletonTest instance; public static synchronized SingletonTest

14、getInstance() if (instance = null) instance = new SingletonTest(); return instance; Java代码 /* *线程安全并且效率高 * */publicclassSingletonTest privatestaticSingletonTestinstance; privateSingletonTest() publicstaticSingletonTestgetIstance() if(instance=null) synchronized(SingletonTest.class) if(instance=null)

15、 instance=newSingletonTest(); returninstance; 2.工厂设计模式 程序在接口和子类之间加入了一个过渡端,通过此过渡端可以动态取得实现了共同接口的子类实例化对象。 示例代码如下:Java代码 interfaceAnimal/定义一个动物的接口publicvoidsay();/说话方法 classCatimplementsAnimal/定义子类CatOverridepublicvoidsay()/覆写say()方法System.out.println(我是猫咪,喵呜!); classDogimplementsAnimal/定义子类DogOverridep

16、ublicvoidsay()/覆写say()方法System.out.println(我是小狗,汪汪!); classFactory/定义工厂类publicstaticAnimalgetInstance(StringclassName) Animala=null;/定义接口对象if(Cat.equals(className)/判断是哪个子类的标记a=newCat();/通过Cat子类实例化接口 if(Dog.equals(className)/判断是哪个子类的标记a=newDog();/通过Dog子类实例化接口 returna; publicclassFactoryDemo publicsta

17、ticvoidmain(Stringargs) Animala=null;/定义接口对象a=Factory.getInstance(args0);/通过工厂获取实例if(a!=null)/判断对象是否为空a.say();/调用方法 java view plaincopyprint?interfaceAnimal/定义一个动物的接口publicvoidsay();/说话方法classCatimplementsAnimal/定义子类CatOverridepublicvoidsay()/覆写say()方法System.out.println(我是猫咪,喵呜!);classDogimplementsA

18、nimal/定义子类DogOverridepublicvoidsay()/覆写say()方法System.out.println(我是小狗,汪汪!);classFactory/定义工厂类publicstaticAnimalgetInstance(StringclassName)Animala=null;/定义接口对象if(Cat.equals(className)/判断是哪个子类的标记a=newCat();/通过Cat子类实例化接口if(Dog.equals(className)/判断是哪个子类的标记a=newDog();/通过Dog子类实例化接口returna;publicclassFact

19、oryDemopublicstaticvoidmain(Stringargs)Animala=null;/定义接口对象a=Factory.getInstance(args0);/通过工厂获取实例if(a!=null)/判断对象是否为空a.say();/调用方法interface Animal / 定义一个动物的接口 public void say(); / 说话方法class Cat implements Animal / 定义子类Cat Override public void say() / 覆写say()方法 System.out.println(我是猫咪,喵呜!); class Dog

20、 implements Animal / 定义子类Dog Override public void say() / 覆写say()方法 System.out.println(我是小狗,汪汪!); class Factory / 定义工厂类 public static Animal getInstance(String className) Animal a = null; / 定义接口对象 if (Cat.equals(className) / 判断是哪个子类的标记 a = new Cat(); / 通过Cat子类实例化接口 if (Dog.equals(className) / 判断是哪个子

21、类的标记 a = new Dog(); / 通过Dog子类实例化接口 return a; public class FactoryDemo public static void main(String args) Animal a = null; / 定义接口对象 a = Factory.getInstance(args0); / 通过工厂获取实例 if (a != null) / 判断对象是否为空 a.say(); / 调用方法 3.代理设计模式 指由一个代理主题来操作真实主题,真实主题执行具体的业务操作,而代理主题负责其他相关业务的处理。比如生活中的通过代理访问网络,客户通过网络代理连接网络(具体业务),由代理服务器完成用户权限和访问限制等与上网相关的其他操作(相关业务)。 示例代码如下:Java代码 interfaceNetwork/定义Network接口publicvoidbrowse();/定义浏览的抽象方法 classRealimplementsNetwork/真实的上网操作publicvoidbrowse()/覆写抽象方法System.out.println(上网浏览信息!); classProxyimplementsNetwork/代理上网privateNetworknetwork; publicProxy(Networknetwork)/设置代理的真实操作

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

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