JAVA设计模式二简单工厂模式
来源:互联网 发布:dnf进决斗场网络中断 编辑:程序博客网 时间:2024/05/16 12:32
简单工厂模式
一 简单工厂模式:就是建立一个工厂类,对实现了同一接口【或者继承同一类】的一些类进行实例的创建。【获取实例的方法返回值为接口或父类对象 用到多态父类引用指向子类 对象】 【一个模式使用了封装继承和多态】
共同的实现接口:【带有发送方法的发送器接口】
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!"); } }如果实现该发送器类多了不好创造每个子类实例,,就需要用到简单工厂模式
单方法工厂类:获取实例方法输入标记 使用if或者switch区分标记分别创造实例返回。
这样好处:写一个方法,坏处:输入错了type不能返回实例
解决:使用多方法工厂模式
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 SendFactory {
public Sender produceMail(){
return new MailSender();
}
public Sender produceSms(){
return new SmsSender();
}
}
静态方法工厂类:【多方法工厂类的改进】将上面的多个工厂方法模式里的方法置为静态的,不需要创建实例,直接调用即可。
public class SendFactory {
public static Sender produceMail(){
return new MailSender();
}
public static Sender produceSms(){
return new SmsSender();
}
}
- JAVA设计模式二简单工厂模式
- Java设计模式(二):工厂模式(Factory)之简单工厂
- JAVA设计模式之二:工厂模式(简单工厂模式+工厂方法模式)
- java设计模式二(简单工厂模式)
- (二)Java设计模式之简单工厂模式
- 设计模式之二:简单工厂模式
- 设计模式(二) 简单工厂模式
- 设计模式(二):简单工厂模式
- 设计模式(二)工厂模式:简单工厂模式
- java 简单工厂设计模式
- JAVA设计模式--简单工厂
- Java简单工厂设计模式
- Java设计模式---简单工厂
- Java设计模式---简单工厂
- java简单工厂设计模式
- java设计模式--简单工厂
- java设计模式----简单工厂
- java简单工厂设计模式
- 集成Kotlin到Android
- Android6.0 UnsatisfiedLinkError couldn't find "xxx.so"
- [leetcode]解题报告121. Best Time to Buy and Sell Stock
- Ubuntu 16.04+ROS kinetic+rviz模拟turtlebot机器人时出现的问题-
- 一次完整的HTTP请求与响应涉及了哪些知识
- JAVA设计模式二简单工厂模式
- js字符串截取函数slice()、substring()、substr()以及split()、John() 、indexOf()的用法
- git遇到的问题之“Please make sure you have the correct access rights and the repository exists.”
- iOS代码实现两张图片合成一个
- JavaScript版几种常见排序算法
- TCP端口
- Tomcat的三种模式区别及配置
- Compile、Make和Build的区别
- hadoop2.7.2学习笔记20-HDFS Snapshots