1. 首页
  2. IT资讯

对面的小白看过来,设计模式在Java中是怎样应用的

“u003Cdivu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002F31eb0001b66266a5698b” img_width=”549″ img_height=”825″ alt=”对面的小白看过来,设计模式在Java中是怎样应用的” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E 有的人说设计模式是Java的灵魂。软件开发领域使用最多也是最受欢迎的开发语言就是Java。起初接触Java的感觉就是他的好多代码都是是可以重用的,因为其面向对象的思想,将系统开发效率大大提高了。后来又学习了设计模式,其简单定义就是对于一类重复出现的问题的可重用的解决方案。在学习过程中慢慢了解到其功能特点,发现它的确为java的语言的可复面向对象技术作出了不少贡献。u003Cu002Fpu003Eu003Cpu003E最常使用的就是Factory模式,它相当于创建对象的new,就是用来创建对象的。工厂模式有两种:工厂方法(Factory Method)和抽象工厂(Abstract Factory)。Factory Method往往用于创建单个实例,而Abstract Factory用于创建多个有联系的实例。Factory Method可以根据不同的条件产生不同的实例,当然这些不同的实例通常是属于相同的类型,具有共同的父类。在java语言中,Factory模式用的十分频繁。例如有一个类Sample,我们要创建一个Sample的对象:Sample sample=new Sample();如果在创建之前要赋值,那么可以使用Sample的构造函数。Sample sample=new Sample(参数);如果创建时做的事情不是如同赋值这么简单的事,而是比较长的一段代码,如果也写入构造函数中那么明显违背了面向对象的原则。所以我们需要将创建实例的责任与使用实例的责任分开,使得语句Sample sample=new Sample(参数);就是简单地责任,使用Sample这个实例,而创建Sample的任务就可以用工厂模式。Factory Method把创建这些实例的具体过程封装起来了,简化了客户端的应用,也改善了程序的扩展性,使得将来可以做最小的改动就可以加入新的待创建的类。u003Cu002Fpu003Eu003Cpu003ESingleton模式常用于对系统资源的控制。Singleton模式主要作用是保证在Java应用程序中,一个Class只有一个实例存在。一个实例表示是单线程,在很多操作中,比如建立目录,数据库连接都需要单线程操作。u003Cu002Fpu003Eu003Cpu003EPrototype是用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。它允许一个对象在创建另外一个可定制的对象,不需要创建的细节,其工作原理是通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。例如,定义一个勺子 。u003Cu002Fpu003Eu003Cpu003Epublic abstract class AbstractSpoon implements Cloneable{u003Cu002Fpu003Eu003Cpu003EString SpoonName;u003Cu002Fpu003Eu003Cpu003Epublic String getSpoonName{u003Cu002Fpu003Eu003Cpu003Ereturn this.spoonName;}u003Cu002Fpu003Eu003Cpu003Epublic Object clone(){u003Cu002Fpu003Eu003Cpu003EObject object=null;u003Cu002Fpu003Eu003Cpu003Etry{ object=sper.clone;u003Cu002Fpu003Eu003Cpu003E}catch (CloneNotSupportedException exception){u003Cu002Fpu003Eu003Cpu003ESystem.err.println(“AbstractSpoon is not Cloneable”);u003Cu002Fpu003Eu003Cpu003E}u003Cu002Fpu003Eu003Cpu003Ereturn object;}u003Cu002Fpu003Eu003Cpu003E有两个具体实现(ConcretePrototype):u003Cu002Fpu003Eu003Cpu003Epublic class SoupSpoon extends AbstractSpoon {u003Cu002Fpu003Eu003Cpu003Epublic SoupSpoon (){u003Cu002Fpu003Eu003Cpu003EsetSpoonName(“Soup Spoon”)}u003Cu002Fpu003Eu003Cpu003E}u003Cu002Fpu003Eu003Cpu003Epublic class SaladSpoon extends AbstractSpoon {u003Cu002Fpu003Eu003Cpu003Epublic SaladSpoon (){u003Cu002Fpu003Eu003Cpu003EsetSpoonName(“Salad Spoon”)}u003Cu002Fpu003Eu003Cpu003E}u003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002F31e300047d4a603d2ddd” img_width=”445″ img_height=”286″ alt=”对面的小白看过来,设计模式在Java中是怎样应用的” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E调用模式很简单,AbstractSpoon spoon=new SoupSpoon(); AbstractSpoon spoon=new SaladSpoon();Java中Prototype变成clone()方法的使用,由于Java纯洁的面向对象特征,所以在中实现Prototype比较简单自然,两者几乎浑然一体了。u003Cu002Fpu003Eu003Cpu003EBuilder将一个需复杂的对象构建与它的表示分离,使同样的构建过程可以创建不同的表示。它允许用户可以只通过指定复杂对象的类型和内容就可以构建它们。在java实际使用中,我们经常用到“池(pool)”的概念,当资源提供者无法提供足够的资源,并且这些资源要被很多用户反复共享时,就需要用池。“池”实际是一段内存,当池中有一些复杂的连接中断资源时,如果循环再利用这些资源,将提高内存使用效率,提高池的性能,修改Builder模式中Director类使它能够诊断出连接中断的资源在哪个部件上,在修复这个部件。u003Cu002Fpu003Eu003Cpu003EFacade的作用是为子系统的一组接口提供一个一致的界面。在Java中,其最典型的应用就是数据库JDBC的应用,它针对不同的数据库编程提供了一种灵活的实现。在应用中,经常需要对数据库操作。每次都写一段对数据库操作的代码相当麻烦,所以需要将其中不变的部分提炼出来,做成一个借口,这里就需要一个Facade外观对象。以后从Mysql换到SQL server数据库时也比较简单,往往只需要换Facade接口中的<driver>就可以了。所有程序对数据库访问都是使用改接口,这样不仅降低了系统的复杂性,也提高了代码的复用性,也大大提高了编程的效率。u003Cu002Fpu003Eu003Cpu003EVisitor作用于某个对象群中某个对象的操作,它可以使你在不改变这些对象本身的情况下,定义作用于这些对象的新操作。在Java中,Visitor模式实际上是分离了collection结构中的元素和对这些元素进行操作的行为。Java的Collection(包括Vector和Hashtable)是我们经常使用的技术,可是从Collection取出的对象的类型需要重新判断,对此,设计一个接口Visitor访问者,在这个接口中,将我们认为Collection有可能的累的类型放入其中,被访问者就是我们Collection的每一个元素Element,我们要为这些Element定义一个可以接受访问的接口Visitable用来定义一个Accept操作,也就是说让Collection每个元素具有可访问性。再将两个接口具体实现,就可以通过一个简单的判断语句来判断元素是否可访问。u003Cu002Fpu003Eu003Cpu003E你学会了吗?u003Cu002Fpu003Eu003Cpu003E想要更多的企业求职加分项目案例,关注Java学习群285154486,每天会讲解分享项目,答疑解惑。u003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002F31e60001b275c810b603″ img_width=”1280″ img_height=”807″ alt=”对面的小白看过来,设计模式在Java中是怎样应用的” inline=”0″u003Eu003Cu002Fpu003Eu003Cu002Fdivu003E”

原文始发于:对面的小白看过来,设计模式在Java中是怎样应用的

主题测试文章,只做测试使用。发布者:熱鬧獨處,转转请注明出处:http://www.cxybcw.com/26608.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code