java 开发中的23种设计模式
设计模式是一套被反复使用,多数人知晓,经过分类编目的,代码设计经验的总结。使用设计模式是为了可重用代码,让代码更容易被他人理解。保证代码可靠性。毫无疑问,设计模式于己于他人于系统都是多赢的。设计模式使代码编制真正工程化,设计模式使软件设计的基石,如同大厦的一块块砖石一样。项目中合理的运用模式可以完美的解决很多问题。
一.设计模式的分类
总体来说设计模式分为三类:
创建型模式,共五种:工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式
结构型模式,共七种:适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模式,享元模式
行为型模式,共十一种:策略模式,模板方法模式,观察者模式,迭代子模式,责任链模式,备忘录模式,状态模式,访问者模式,中介者模式,解释器模式
下面开始正文:
1.工厂方法模式(Factory Method)
工厂方法模式分为三种:
1.1普通工厂模式,就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建:
我们举一个发送邮件和短信的例子
public interface Sender{
public void Send();
}
其次,创建实现类:(java 中 implements 用于实现接口;extends 用于实现继承)
public class MailSender implements Sender{
@Override
public void Send(){
System.out.println("this is mailsender");
}
}
public class SmsSender implements Sender{
public void Send(){
System.out.println("this is sms sender");
}
}
//最后,建工厂类
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();
}
}