欢迎来到天天文库
浏览记录
ID:56767019
大小:996.50 KB
页数:33页
时间:2020-07-08
《设计模式复习精要.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、题型:选择题30分,程序填空题60分,模式编程10。*设计模式的关键元素包括以下四个方面:模式名称(Patternname)问题(Problem)解决方案(Solution)效果(Consequences)*常用的描述设计模式的格式有:意图、动机、适用性、结构(模式动机、模式定义、模式结构、模式分析、模式优缺点、模式适用环境)*设计模式的两大主题是系统复用与系统拓展。*常用的面向对象设计原则包括7个,这些原则并不是孤立存在的,它们相互依赖,相互补充:*创建型模式(CreationalPattern)对类的实例化过程进行了抽象,能够
2、将软件模块中对象的创建和对象的使用分离。*结构型模式是描述如何将类对象结合在一起,形成一个更大的结构,结构模式描述两种不同的东西:类与类的实例。故可以分为类结构模式和对象结构模式。*行为型模式描述类或对象如何交互及如何分配职责,它主要涉及通过合理的处理方法,达到使系统升级性和维护性提高的目的。1.简单工厂模式:又称为静态工厂方法(StaticFactoryMethod)模式,根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。简单工厂模式属于创建型模式。简单工厂模式包
3、含如下角色:Factory:工厂角色Product:抽象产品角色ConcreteProduct:具体产品角色publicabstractclassAbstractPay//抽象支付类{publicabstractvoidpay();}publicclassCashPayextendsAbstractPay//具体支付类{publicvoidpay(){//现金支付处理代码}}publicclassCreditcardPayextendsAbstractPay//具体支付类{publicvoidpay(){//信用卡支付处理代码}}
4、publicclassPayMethodFactory//支付工厂{publicstaticAbstractPaygetPayMethod(Stringtype){if(type.equalsIgnoreCase("cash")){returnnewCashPay();//根据参数创建具体产品}elseif(type.equalsIgnoreCase("creditcard")){returnnewCreditcardPay();//根据参数创建具体产品}……}}实例一:简单电视机工厂某电视机厂专为各知名电视机品牌代工生产各类电视
5、机,当需要海尔牌电视机时只需要在调用该工厂的工厂方法时传入参数“Haier”,需要海信电视机时只需要传入参数“Hisense”,工厂可以根据传入的不同参数返回不同品牌的电视机。现使用简单工厂模式来模拟该电视机工厂的生产过程。1.工厂方法模式(FactoryMethodPattern):又称为工厂模式,也叫虚拟构造器(VirtualConstructor)模式或者多态工厂(PolymorphicFactory)模式。在工厂方法模式中,工厂父类负责定义创建产品对象的公共接口,而工厂子类则负责生成具体的产品对象,目的是将产品类的实例化操
6、作延迟到工厂子类中完成,即通过工厂子类来确定究竟应该实例化哪一个具体产品类。工厂方法模式属于类创建型模式。工厂方法模式包含如下角色:Product:抽象产品ConcreteProduct:具体产品Factory:抽象工厂ConcreteFactory:具体工厂publicabstractclassPayMethodFactory//抽象工厂类{publicabstractAbstractPaygetPayMethod();}publicclassCashPayFactoryextendsPayMethodFactory//具体工厂
7、类{publicAbstractPaygetPayMethod(){returnnewCashPay();}}publicabstractclassAbstractPay//抽象支付类{publicabstractvoidpay();}publicclassCashPayextendsAbstractPay//具体支付类{publicvoidpay(){//现金支付处理代码}}PayMethodFactoryfactory;//客户类代码片段AbstractPaypayMethod;factory=newCashPayFactor
8、y();payMethod=factory.getPayMethod();payMethod.pay();实例一:电视机工厂将原有的工厂进行分割,为每种品牌的电视机提供一个子工厂,海尔工厂专门负责生产海尔电视机,海信工厂专门负责生产海信电视机,如果
此文档下载收益归作者所有