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转载请标明出处.