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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

简单工厂模式.docx

1、简单工厂模式简单工厂模式简单工厂模式包含如下角色:Factory:工厂角色Product:抽象产品角色ConcreteProduct:具体产品角色public void pay(String type) if(type.equalsIgnoreCase(cash) /现金支付处理代码 else if(type.equalsIgnoreCase(creditcard) /信用卡支付处理代码 else if(type.equalsIgnoreCase(voucher) /代金券支付处理代码 else 代码复杂,难以维护重构后的代码:public abstract class AbstractPay

2、 public abstract void pay(); public class CashPay extends AbstractPay public void pay() /现金支付处理代码 public class PayMethodFactory public static AbstractPay getPayMethod(String type) if(type.equalsIgnoreCase(cash) return new CashPay(); /根据参数创建具体产品 else if(type.equalsIgnoreCase(creditcard) return new Cr

3、editcardPay(); /根据参数创建具体产品 工厂方法模式工厂方法模式包含如下角色:Product:抽象产品ConcreteProduct:具体产品Factory:抽象工厂ConcreteFactory:具体工厂抽象工厂类代码:public abstract class PayMethodFactory public abstract AbstractPay getPayMethod();具体工厂类代码:public class CashPayFactory extends PayMethodFactory public AbstractPay getPayMethod() retur

4、n new CashPay(); 客户类代码片段:PayMethodFactory factory;AbstractPay payMethod;factory=new CashPayFactory();payMethod =factory.getPayMethod();payMethod.pay(); 抽象工厂模式抽象工厂模式包含如下角色:AbstractFactory:抽象工厂ConcreteFactory:具体工厂AbstractProduct:抽象产品Product:具体产品抽象工厂类的典型代码如下:public abstract class AbstractFactory public

5、 abstract AbstractProductA createProductA(); public abstract AbstractProductB createProductB();具体工厂类的典型代码如下:public class ConcreteFactory1 extends AbstractFactory public AbstractProductA createProductA() return new ConcreteProductA1(); public AbstractProductB createProductB() return new ConcreteProdu

6、ctB1(); 抽象产品类:Public abstract class AbsractProductA()/每个产品共有的方法Public void shareMethod()/每个产品相同方法,不同实现Public abstract void doSomething();具体产品A1:Public class ProductA1 extends AbstractProductAPublic void doSomething()System.out.println(“产品A1的实现方法”)具体产品A2:Public class ProductA2 extends AbstractProduct

7、APublic void doSomething()System.out.println(“产品A2的实现方法”)产品等级1:Public class Creator1 extends AbsractCreator/只生产产品等级为1的A产品Public AbstractPorductA creatProductA()Return new ProductA(); /只生产产品等级为1的B产品Public AbstractProductB creatProductB()Return new ProductB();原型模式原型模式包含如下角色:Prototype:抽象原型类ConcreteProt

8、otype:具体原型类Client:客户类Public PrototypeClass clone()overridePublic PrototypeClass prototypeClass=null;TryprototypeClass=(prototypeClass)super.clone();catch(CloneNotSupportedException e)Return prototypeClass;单例模式单例模式的实现代码如下所示:public class Singleton private static Singleton instance=null; /静态私有成员变量 /私有构

9、造函数 private Singleton() /静态公有工厂方法,返回唯一实例 public static Singleton getInstance() if(instance=null) instance=new Singleton(); return instance; 适配器模式类适配器对象适配器适配器模式包含如下角色:Target:目标抽象类Adapter:适配器类Adaptee:适配者类Client:客户类典型的类适配器代码:public class Adapter extends Adaptee implements Target public void request() s

10、pecificRequest(); 典型的对象适配器代码:public class Adapter extends Target private Adaptee adaptee; public Adapter(Adaptee adaptee) this.adaptee=adaptee; public void request() adaptee.specificRequest(); 桥接模式桥接模式包含如下角色:Abstraction:抽象类RefinedAbstraction:扩充抽象类Implementor:实现类接口ConcreteImplementor:具体实现类 典型的实现类接口代码

11、:public interface Implementor public void operationImpl(); 典型的抽象类代码:public abstract class Abstraction protected Implementor impl; public void setImpl(Implementor impl) this.impl=impl; public abstract void operation(); 典型的扩充抽象类代码:public class RefinedAbstraction extends Abstraction public void operati

12、on() /代码 impl.operationImpl(); /代码 外观模式观模式包含如下角色:Facade: 外观角色SubSystem:子系统角色典型的外观角色代码:public class Facade private SubSystemA obj1 = new SubSystemA(); private SubSystemB obj2 = new SubSystemB(); private SubSystemC obj3 = new SubSystemC(); public void method() obj1.method(); obj2.method(); obj3.method

13、(); 代理模式代理模式包含如下角色:Subject: 抽象主题角色Proxy: 代理主题角色RealSubject: 真实主题角色抽象主踢类:Public interface Subject/定义一个方法Public void request();Public class RealSubject implements SubjectPublic void request()典型的代理类实现代码:public class Proxy implements Subject private RealSubject realSubject = new RealSubject(); public vo

14、id preRequest() . public void request() preRequest(); realSubject.request(); postRequest(); public void postRequest() 命令模式命令模式包含如下角色:Command: 抽象命令类ConcreteCommand: 具体命令类Invoker: 调用者Receiver: 接收者Client:客户类典型的抽象命令类代码:public abstract class Command public abstract void execute(); 典型的调用者代码:public class I

15、nvoker private Command command; public Invoker(Command command) mand=command; public void setCommand(Command command) mand=command; /业务方法,用于调用命令类的方法 public void call() command.execute(); 典型的具体命令类代码:public class ConcreteCommand extends Command private Receiver receiver; public void execute() receiver

16、.action(); 典型的请求接收者代码:public class Receiver public void action() /具体操作 迭代器模式迭代器模式包含如下角色:Iterator: 抽象迭代器ConcreteIterator: 具体迭代器Aggregate: 抽象聚合类ConcreteAggregate: 具体聚合类实例:电视机遥控器 电视机遥控器就是一个迭代器的实例,通过它可以实现对电视机频道集合的遍历操作,本实例我们将模拟电视机遥控器的实现。 观察者模式观察者模式包含如下角色:Subject: 目标ConcreteSubject: 具体目标Observer: 观察者Concr

17、eteObserver: 具体观察者典型的抽象目标类代码如下所示:public abstract class Subject protected ArrayList observers = new ArrayList(); public abstract void attach(Observer observer); public abstract void detach(Observer observer); public abstract void notify(); public class ConcreteSubject extends Subject public void atta

18、ch(Observer observer) observers.add(observer); 典型的具体目标类代码如下所示: public void detach(Observer observer) observers.remove(observer); public void notify() for(Object obs:observers) (Observer)obs).update(); 典型的抽象观察者代码如下所示:public interface Observer public void update(); 典型的具体观察者代码如下所示:public class Concrete

19、Observer implements Observer public void update() /具体更新代码 客户端代码片段如下所示:Subject subject = new ConcreteSubject();Observer observer = new ConcreteObserver();subject.attach(observer);subject.notify(); 策略模式策略模式包含如下角色:Context: 环境类Strategy: 抽象策略类ConcreteStrategy: 具体策略类不使用策略模式的代码:public class Context public

20、void algorithm(String type) . if(type = strategyA) /算法A else if(type = strategyB) /算法B else if(type = strategyC) /算法C . 重构之后的抽象策略类:public abstract class AbstractStrategy public abstract void algorithm(); 重构之后的具体策略类:public class ConcreteStrategyA extends AbstractStrategy public void algorithm() /算法A

21、重构之后的环境类:public class Context private AbstractStrategy strategy; public void setStrategy(AbstractStrategy strategy) this.strategy= strategy; public void algorithm() strategy.algorithm(); 客户端代码片段:Context context = new Context();AbstractStrategy strategy;strategy = new ConcreteStrategyA();person.setStrategy(strategy);person.algorithm();

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

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