博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 开发中的23种设计模式
阅读量:6864 次
发布时间:2019-06-26

本文共 1312 字,大约阅读时间需要 4 分钟。

设计模式是一套被反复使用,多数人知晓,经过分类编目的,代码设计经验的总结。使用设计模式是为了可重用代码,让代码更容易被他人理解。保证代码可靠性。毫无疑问,设计模式于己于他人于系统都是多赢的。设计模式使代码编制真正工程化,设计模式使软件设计的基石,如同大厦的一块块砖石一样。项目中合理的运用模式可以完美的解决很多问题。

一.设计模式的分类

总体来说设计模式分为三类:

创建型模式,共五种:工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式

结构型模式,共七种:适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模式,享元模式

行为型模式,共十一种:策略模式,模板方法模式,观察者模式,迭代子模式,责任链模式,备忘录模式,状态模式,访问者模式,中介者模式,解释器模式

下面开始正文:

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();

  }

}

 

转载于:https://www.cnblogs.com/csli/p/6865757.html

你可能感兴趣的文章
软件过程与项目管理(第七周作业)
查看>>
Java-生成验证码图片(自定义内容,尺寸,路径)
查看>>
Word2007:如何在竖版(纵向)页面中间插入横版(横向)页面
查看>>
CentOS中配置xrdp,通过微软远程桌面访问CentOS桌面
查看>>
Java中关于nextInt()、next()和nextLine()的理解
查看>>
Flask的基本操作知识
查看>>
Android -- 真正的 高仿微信 打开网页的进度条效果
查看>>
ArrayList<HashMap<String, Object>>使用示例!
查看>>
Windows Azure 网站开发Stacks支持
查看>>
Android 5.0新控件——FloatingActionButton(悬浮按钮)
查看>>
每天一个linux命令(6):dos2unix unix2dos
查看>>
ObjectQuery查询及方法
查看>>
使用jemeter手工编写注册、登陆脚本 运用 fiddler (三)
查看>>
uva 10288 Coupons (分数模板)
查看>>
使用docker的kms服务器激活office2016专业增强版
查看>>
Redis
查看>>
程序员需要淡定
查看>>
大整数算法[11] Karatsuba乘法
查看>>
为什么可以用while(cin)?
查看>>
Cisco 交换机与路由器故障处理方法分享
查看>>