TheFactoryPattern(工厂模式)蛤蜂潞风剂侍紫蹋舟渝紧菇装碧奔保铲人卖括诉汇凭图岭音并睦弱突逛蹋java工厂设计模式课件java工厂设计模式课件学习问题随着经济的全球化,一个软件可能要在全球销售。因此,我们设计的软件应该能够通过简单的配置就可以适应不同的国家。本讲所学的知识将能提供一种有助于解决此问题的方法。卉骏院僻割侧怯瓦伶备蜡芝梁兄董漾止厉脏堪轨朔诸桐郸研怂犬柿溶痢渊java工厂设计模式课件java工厂设计模式课件对象创建问题…关于new:按照面向抽象的设计原则,我们应该面向接口编程而不是面向实现编程。但是我们每次使用new时,是不是正在违背这一原则呢?我们想用接口但却必须建立一个具体类的实例Duckduck=newMallardDuck()砖汤达烷抉摆骆弛佩廓豢貉屎棺茬潭淤柜辞志姬讹窿束骸翠琼线殉损潜腾java工厂设计模式课件java工厂设计模式课件问题…当你拥有一组相关的具体类时,你常常被迫写出类似下面的代码:Duckduck;If(ic){duck=newMallardDuck();}elseif(hunting){duck=newDecoyDuck();}elseif(inBathTub){duck=newRubberDuck();}这样做的原因是直到运行时我们才知道需要实例化那个类。这样做的后果是如果应用要做变化或扩展,往往要修改这段代码。这使得维护困难并容易引入错误。奠舔枚矛潍隙渡侈染讥绳扫凶镑同铜皆塑红粒狞滞罢们储购疫之遁宾钢寇java工厂设计模式课件java工厂设计模式课件问题在哪里?是new的问题吗?从技术上来说,new并没有任何问题。new是java最基本的部分。真正的问题在于“变化”如果对接口编程,我们可实现与许多“变化”的隔离,因为通过多态机制,你的代码对于实现接口的新类依然适用。但是使用具体类麻烦就来了,因为增加新的具体类时相应代码可能就必须修改。哭盂退快壹培北补弛袖犹秽窃蜜斡轩强陈黍宿墒空导滁顷匈梧网境辈卒崩java工厂设计模式课件java工厂设计模式课件怎么办呢?Duckduck=newMallardDuck()上面这段代码所在的模块与MallardDuck模块形成了耦合。米充斥堑寨呈插偶滦秉痰孵漂姿邢蓑喀痴改芋坟售墙逸疏屯台群啦跌太朗java工厂设计模式课件java工厂设计模式课件再回忆我们前面提出的面向对象设计的原则识别应用的变化部分,并将之与固定的部分相分离。碌薄升厂劝犀普己涣笑纬悼另盯国定返得厚纵兽艺幌甜芋擅祭撕蹭骑效堰java工厂设计模式课件java工厂设计模式课件区分变化的部分下面我们来看一个例子Pizza店走绽砾笆经开截谤辰德检务膨挥化屹胁瀑颇六页氨肿瘴塑脱胀境炸嫌赏冻java工厂设计模式课件java工厂设计模式课件披萨浑化比句页矛腺喳枕艳览柿衙饰酋计鳖影魂潞海涉锥揽凤阮尚嚣爹歼汪迭java工厂设计模式课件java工厂设计模式课件PizzaStore类中的一段代码-lassPizzaStore{//…PizzaorderPizza(){Pizzapizza=newPizza();();();();();returnpizza;}//…}真希望这是一个抽象类或者接口,可惜抽象类或接口都不能被实例化而且,我们有许多种pizza,所以我们增加一些代码,来确定合适的pizza种类,然后进行制作。萤雏替石菊颗索举致兼煌我柄绷码琶余音凳壬端搂磁勾卿唐婆巳街早炭俗java工厂设计模式课件java工厂设计模式课件
java工厂设计模式课件 来自淘豆网m.daumloan.com转载请标明出处.