- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java设计模式讲述
Java之美-设计模式 (Design pattern);什么是设计模式;设计模式的分类;1、单例模式(Singleton);(1)懒汉式单例;A、在getInstance方法上加同步;B、双重检查锁定;C、静态内部类;(2)饿汉式单例;单例模式应用场景;2、工厂方法模式(Factory Method);(1)简单工厂模式;举例:发送邮件和短信的例子;// 工厂类
public?class?SendFactory?{??
??????public?Sender?produce(String?type)?{??
????????if?(mail.equals(type))?{??
????????????return?new?MailSender();??
????????}?else?if?(sms.equals(type))?{??
????????????return?new?SmsSender();??
????????}?else?{??
????????????System.out.println(请输入正确的类型!);??
????????????return?null;??
????????}??
????}??
}??
public?class?FactoryTest?{??
??????public?static?void?main(String[]?args)?{??
????????SendFactory?factory?=?new?SendFactory();??
????????Sender?sender?=?factory.produce(sms);??
????????sender.Send();??
????}??
}??
输出:this is sms sender!
;(2)多个工厂方法模式;将上面的代码做下修改,改动下SendFactory类就行,如下:
public?class?SendFactory?{??
????public?Sender?produceMail(){??
????????return?new?MailSender();??
????}??
??????
????public?Sender?produceSms(){??
????????return?new?SmsSender();??
????}??
}??
public?class?FactoryTest?{??
????public?static?void?main(String[]?args)?{??
????????SendFactory?factory?=?new?SendFactory();??
????????Sender?sender?=?factory.produceMail();??
????????sender.Send();??
????}??
}??
输出:this is mailsender!
;(3)静态工厂方法模式;应用实例: Spring BeanFactory;应用实例:Spring 工厂方法注入;/**?
?*?静态的工厂方法注入?
?*?@author?Administrator?
?*?
?*/??
public?class?CarFactory2?{??
??
????public?static?Car?createHongQiCar(){??
????????Car?car?=?new?Car();??
????????car.setName(红旗);??
????????car.setSpeed(200);??
????????return?car;??
????}??
??????
}??
对应的bean2.xml文件
bean?id=car?class=com.lbx.factory.CarFactory2?factory-method=createHongQiCar/bean??
;问题;3、抽象工厂模式(Abstract Factory);示例;两个工厂类:;;4、建造者模式(Builder);;建造者模式应用场景;应用实例:AltrtDialog.Builder;5、原型模式(Prototype);public interface Prototype{
/**
* 克隆自身的方法
* @return 一个从自身克隆出来的对象
*/
public Object clone();
}
public class ConcretePrototype1 implements Prototype {
public Prototype clone(){
//最简单的克隆,新建一个自身对象,由于没有属性就
您可能关注的文档
最近下载
- 多层住宅小区工程监理规划.docx VIP
- NY_T 3213-2023 植保无人驾驶航空器 质量评价技术规范.docx VIP
- 盘扣式悬挑脚手架施工方案施工计划.doc VIP
- 部编版小学一年级语文上册表格式教案全册.doc VIP
- 电线电缆抗张强度检测结果的测量不确定度评定.doc VIP
- (正式版)H-G-T 22820-2024 化工安全仪表系统工程设计规范.docx VIP
- 绘本故事PPT课件之我好害怕.pptx
- 广东省惠州市博罗县泰美镇城镇总体规划项目建议书.doc VIP
- 虚拟仪器及LabVIEW知到智慧树期末考试答案题库2025年山东科技大学.docx VIP
- 2025年全国Ⅰ卷英语听力评析和听力材料二次开发(课件).pptx
文档评论(0)