欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:6101974       资源大小:34.48KB        全文页数:40页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    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)/设置代理的真实操作


    注意事项

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

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

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

    收起
    展开