本文共 1582 字,大约阅读时间需要 5 分钟。
24种设计模式(gof23+1):1.简单工厂模式(不包含在gof23中)
2.工厂模式 3.抽象工厂模式 4.单例模式 5.原型模式6.结构型模式:
7.组合模式//对象的创建即可使用 链式表达 的方式一行代码完成@Builderpublic class Student { private String id; private String name; private Date birthday;}====================================//...Student student = Student.builder().id("1").name("杭歌").birthday(new Date()).build();//...
Java I/O 使用了装饰者模式来实现。以 InputStream 为例,
实例化一个具有缓存功能的字节流对象时,只需要在 FileInputStream 对象上再套一层 BufferedInputStream 对象即可。
FileInputStream fileInputStream = new FileInputStream(filePath);BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);
DataInputStream 装饰者提供了对更多数据类型进行输入的操作,比如 int、double 等基本类型。
9.外观模式
10.适配器模式java.util.Arrays#asList() 可以把数组类型转换为 List 类型。
@SafeVarargspublic staticList asList(T... a)
应该注意的是 asList() 的参数为泛型的变长参数,不能使用基本类型数组作为参数,只能使用相应的包装类型数组。
Integer[] arr = { 1, 2, 3};List list = Arrays.asList(arr);
也可以使用以下方式调用 asList():
List list = Arrays.asList(1, 2, 3);
11.代理模式
12.享元模式 13.桥接模式14.观察者模式
15.策略模式 16.状态模式 17.中介模式 18.模板方法 19.命令模式 20.备忘录模式 21.访问者模式 22.解释器模式 23.迭代器模式Collection 继承了 Iterable 接口,其中的 iterator() 方法能够产生一个 Iterator 对象,通过这个对象就可以迭代遍历 Collection 中的元素。
从 JDK 1.5 之后可以使用 foreach 方法来遍历实现了 Iterable 接口的聚合对象。
Listlist = new ArrayList<>();list.add("a");list.add("b");for (String item : list) { System.out.println(item);}
24.职责链模式
转载地址:http://zvxab.baihongyu.com/