模板模式
跟策略模式类似,模板模式会先定义好实现的逻辑步调,然则具体的实现方法由子类完成,跟策略模式的差别就是模板模式是有逻辑步调的。比如要给院系里的学生排序,并掏出排名第一的学生。这里就有2个步调,分别是排序和掏出第一逻辑学生。
一段伪代码:
- public abstract class AbstractStudentGetter {
- public final Student getStudent(List students) {
- sort(students); // 第一步
- if(!CollectionUtils.isEmpty(students)) {
- return students.get(0); // 第二步
- }
- return null;
- }
- abstract public void sort(List students);
- }
- class AgeStudentGetter extends AbstractStudentGetter { // 掏出年纪最大年夜的学生
- @Override
- public void sort(List students) {
- students.sort(new Comparator() {
- @Override
- public int compare(Student s1, Student s2) {
- return s2.getAge() - s1.getAge();
- }
- });
- }
- }
- class NameStudentGetter extends AbstractStudentGetter { // 按照名字字母排序掏出第一个学生
- @Override
- public void sort(List students) {
- students.sort(new Comparator() {
- @Override
- public int compare(Student s1, Student s2) {
- return s2.getName().compareTo(s1.getName());
- }
- });
- }
- }
测试:
- MetricsObserable metricsObserable = new MetricsObserable();
推荐阅读
自负年夜 Google 的人工智能 AlphaGO 成为围棋界的百胜将近开端,AI(Artificial Intelligence,人工智能)这两个英文字,刹那间成为科技业最热点的关键字之一。而就在2017岁首?年代,早在>>>详细阅读
本文标题:记录自己理解的一些设计模式
地址:http://www.17bianji.com/lsqh/34663.html
1/2 1