当前位置: 首页 > news >正文

房地产网站建设公司推荐互联网创业项目怎么做

房地产网站建设公司推荐,互联网创业项目怎么做,wordpress用户发邮件,网页源代码和框架源代码秋招结束后#xff0c;间接性堕落了一段时间#xff0c;学习几乎停止下来了。内心甚是焦灼#xff0c;感觉生活很无趣#xff01;为了在参加工作后能够快速上手和成为一名优秀的中级开发者#xff0c;从这篇文章开始将不断学习优秀的编码经验#xff0c;学习是永无止境的… 秋招结束后间接性堕落了一段时间学习几乎停止下来了。内心甚是焦灼感觉生活很无趣为了在参加工作后能够快速上手和成为一名优秀的中级开发者从这篇文章开始将不断学习优秀的编码经验学习是永无止境的。需要静下来慢慢来下面进入新篇章技术提升篇。 应用情景 在工作中往往我们的需求是多变的那么如果我们只是简单的硬编码解决暂时的需求那么当需求进行变更的时候我们的接口就需要变更来应对新的需求。但是有些情况下我们可以写一些通用接口来因对这种变化即把频繁变化的东西提取出来交给接口调用者来设计。在这种情况下我们的接口就无需变化而当需求变化了只需要重写频繁变化的对象即可。这就是策略模型的一种应用接下来将用具体的例子来说明这种编码方式的具体实现。 此时我们有个实体集合需要通过对实体类的属性进行过滤选择出符合我们条件的一些实体。例如第一周产品经理要求对属性一进行过滤第二周需求变更又要把属性二加进去过滤第三周又要把属性三考虑进去。。。。。于是为了应对这种变化我们的接口应该使用策略模式。如下 具体实现 假设我们的实体简单一些使用经典Student作为实体代码如下 package strategy.demo.entity;public class Student {private String name;private int age;private int score;private String address;public Student(String name, int age, int score, String address){this.name name;this.age age;this.score score;this.address address;}public String getName() {return name;}public int getAge() {return age;}public int getScore() {return score;}public String getAddress() {return address;}public String toString(){return Student [name name , age age , score score , address address ];} }首先我们看下如果是硬编码的话两个不同的需求应该会写下如下代码 /*** 需求1根据分数过滤学生* param students* param age* return*/public ListStudent filterStudentByAge(ListStudent students, int age){ArrayListStudent result new ArrayList();for (Student student : students) {if (student.getAge() age){result.add(student);}}return result;}/*** 需求2根据分数和年龄过滤学生* param students* param age* param score* return*/public ListStudent filterStudentByScore(ListStudent students,int age , int score){ArrayListStudent result new ArrayList();for (Student student : students) {if (student.getScore() score student.getAge() age){result.add(student);}}return result;}上面的代码需求2的代码是对需求1的升级维护如果后面继续改动这个接口呢所以我们需要把频繁变动的东西提取出来作为一个策略对象这里频繁变动的东西就是对实体Student属性的判断因此我们抽取出一个接口 package strategy.demo.service; import strategy.demo.entity.Student; public interface filterStrategy {/*** 根据stduent的不同属性进行谓词过滤* param student* return*/public boolean filterStudent(Student student); } 这个接口只有一个待实现的方法接受一个Student对象返回是否符合过滤条件。而这个接口是由调用者实现的其实这个设计思路在JDK中非常常见。我们需要对一个对象集合 sort 排序需要按照自己的排序策略重写Comparator接口还记得嘛如下 ListStudent allStudents StudentHelps.getAllStudents(); allStudents.sort(new ComparatorStudent() {Overridepublic int compare(Student o1, Student o2) {return o1.getAge()-o2.getAge;} });因此使用策略模式我们只需要写下一个过滤方法即可其他的过滤策略由调用者去实现如下 public ListStudent filterStudentByStrategy(ListStudent students, filterStrategy strategy){ArrayListStudent result new ArrayList();for (Student student : students) {if (strategy.filterStudent(student)){result.add(student);}}return result;}调用者实现时如下 ListStudent allStudents StudentHelps.getAllStudents(); ListStudent students3 filterStudentByStrategy(allStudents, new filterStrategy() {Overridepublic boolean filterStudent(Student student) {return student.getScore() 80 student.getAge() 20;} });如此一来无论对student的过滤需求如何变化始终可以通过 filterStrategy 接口实现因此就更大程度上遵守高内聚低耦合的开发原则。这就是设计模式的美妙之处。 扩展 其实在很多情况下接口开发者会提供一个基本功能的 filterStrategy 接口实现类里面有常用的过滤策略调用者只需要用即可不需要每次都自己定义。这在JDK源码和SpringBoot中有太多的例子了简单常用的由接口方提供复杂不常用的我允许调用者自定义 另外一个扩展就是调用者在这里写匿名类可以使用Lambda语法具体参考我的博客 Lambda表达式常见用法 。Lambda语法也是提供工作效率的神器有时间推荐学习因此调用者使用Lambda可以这样编写代码 ListStudent students4 filterStudentByStrategy(allStudents, student - student.getScore() 80 student.getAge() 20);也就相当于把判断条件参数化了这种做法叫做自定义函数接口看起来是函数作为一个参数传递看不懂的话去看下我的博客就会了以上就是本期内容共勉加油
http://www.hkea.cn/news/14562890/

相关文章:

  • 大型营销型网站建设高端品牌网站建设特点
  • 网站类网站开发教程WordPress获取评论内容
  • 点开文字进入网站是怎么做的工商营业执照年检
  • n怎样建立自己的网站wordpress antivirus
  • 网页可信站点网站制作平台公司
  • 自己电脑做服务器搭建网站网站导航栏注明做
  • 简易做海报网站关于搜索引擎的搜索技巧
  • 做的比较好的p2p网站辽宁建设资质申报网站
  • 怎么自己做微网站吗wordpress付费插件网站
  • WordPress搭建手机网站网站域名免费注册
  • 蛋糕网站模版杭州服装论坛网站建设
  • 哪个公司做外贸网站好网站开发整体流程图
  • 建站平台转型微分销系统怎么做
  • 黄页网站软件应用大全广州网站制作一般多少钱
  • 网站开发兼职成都佛山网站制作维护
  • 云谷系统网站开发东莞阳光网站建设成效
  • 宁波商城网站开发设计网站信息系统建设
  • 贵司不断优化网站建设wordpress首页五格
  • 代做毕设自己专门网站上网站建设
  • 电脑配件网站建设互动营销的案例及分析
  • 龙华建设局网站wordpress文章页横幅
  • 网站建设团队与分工为什么只有我的电脑看网站后台内容管理是乱码
  • 有了域名 建设自己的网站不允许做企业网站
  • 徐州企业做网站求邯郸网站制作
  • 网站建设管理需要招聘什么人才设计网站的在工作中的品牌网站
  • 浪漫做爰网站html精美登录界面源码
  • 网站制作报价ihanshiwordpress二次开发手册chm
  • 知乎 网站建设帷客分享 wordpress
  • 网站设计 模板专业网站建设怎么样
  • 做淘宝美工图片网站手机网站可以做百度商桥吗