学习java设计模式
来源:互联网 发布:压力也没那么大程序员 编辑:程序博客网 时间:2024/04/20 10:37
设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。设计模式使代码编制真正工程化,设计模式是软件工程的基石。每一个模式描述了在我们周围不断重复发生的问题,以及该问题的核心解决方案。
设计模式分类:
创建型:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式;
结构型:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式;
行为型:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式;
并发模式以及线程池模式
一、工厂方法(Factory Methos)
1.普通工厂模式:
mail 和 sms
首先,创建二者共同的接口:
public interface Sender{ public void Send();}其次,创建实现类:
public class MailSender implements Sender { @Override public void Send() { System.out.println("this is mailsender!"); } }
public class SmsSender implements Sender { @Override public void Send() { System.out.println("this is sms sender!"); } }最后,建立工厂类:
public class SendFactory{ public Sender produce(String type){ if("mail".equal(type)){ return new MailSender(); }else if("sms".equal(type)){ return new SmsSender(); }else{ System.out.println("please input the corrent type!"); return null; } }}测试如下:
public class FactoryTest { public static void main(String[] args) { SendFactory factory = new SendFactory(); Sender sender = factory.produce("sms"); sender.Send(); } }
2.多个工厂方法模式,是对普通工厂方法模式的改进,在普通工厂模式中,如果字符写错,将无法创建实例,而多个工厂方法模式是提供多个工厂方法,分别创建对象
只需要改动SendFactory类即可:
public class SendFactory { public Sender produceMail(){ return new MailSender(); } public Sender produceSms(){ return new SmsSender(); } }
test如下:
public class FactoryTest { public static void main(String[] args) { SendFactory factory = new SendFactory(); Sender sender = factory.produceMail(); sender.Send(); } }
3.静态工厂方法模式,不需要创建实例,直接调用即可:
public class SendFactory { public static Sender produceMail(){ return new MailSender(); } public static Sender produceSms(){ return new SmsSender(); } }
public class FactoryTest { public static void main(String[] args) { Sender sender = SendFactory.produceMail(); sender.Send(); } }
总体来说,工厂模式:凡是出现了大量的产品需要创建,并且具有共同的接口就可以使用工厂方法,大多数我们选用静态工厂。
1 0
- Java设计模式学习
- java设计模式学习
- JAVA设计模式学习
- java设计模式学习
- 学习java设计模式
- Java设计模式 -- 学习笔记
- 轻松学习JAVA设计模式
- Java设计模式学习资料
- JAVA设计模式学习总结
- java设计模式学习一
- java设计模式学习记录
- Java设计模式学习总结
- Java学习·设计模式
- java中的设计模式学习
- java设计模式学习(-)
- java - 设计模式学习总结
- Java设计模式简单学习
- Java - 设计模式学习总结
- setAccessible(true)
- 吊炸天的代码头部注释
- 过滤器实现页面静态化
- nginx运行php"No input file specified"错误的解决方法
- Spring MVC源码分析——初始化过程
- 学习java设计模式
- 特征提取算法比较
- C++中多重继承的二义性及解决办法
- 关于数据的外键
- <OJ_Sicily>1134积木分发
- 结构型设计模式学习笔记
- Swift2.0 泛型-减少重用代码的编写
- mac osx 命令行修改主机名
- Jenkins部署Web项目到远程tomcat