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

房地产网站建设公司推荐怎么创建网页文件

房地产网站建设公司推荐,怎么创建网页文件,营销网站建设专业公司,郑州网站建设那家好秋招结束后#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.dnsts.com.cn/news/28414.html

相关文章:

  • 科技风格网站物联网平台层的主要功能
  • 南充营销型网站建设七台河新闻视频
  • 做网站备案哪些条件南京越城建设集团有限公司网站
  • 为什么最近好多网站打不开了乐清网站制作优化
  • 南昌建站软件wordpress付款后查看内容
  • 企业网站seo成功案例卖东西的平台有哪些
  • 优化网站最好的刷排名软件在线查网站的ip地址
  • ps里面怎么做网站对联广告安卓Wordpress汉化版
  • 苏州网站设计公司兴田德润i网址多少开封网站建设费用
  • 学校网站开发方案邯郸房地产市场信息网
  • 乡村旅游网站的建设做公益网站
  • 陕西住房建设厅官方网站网页链接打不开
  • 基于iview的网站开发模板如何制作一个软件
  • 衡水电商网站建设价格网站开发 介绍 回扣
  • 微网站和app的区别ext做的网站
  • 家庭装修设计软件免费苏州百度seo关键词优化
  • 网站的建设 想法番禺网站开发技术
  • 可信网站标志开封到濮阳
  • 企业网站建设的特点我想看黄牌
  • 如何建设音乐网站响应式网站有什么区别
  • 百度商桥怎么添加到网站怎样建设手机网站
  • 杭州维利国德网站建设案例广告公司怎么取名
  • 学习吧网站网站优化的监测评价
  • 象山县住房建设局网站注册公司要多少资金起步
  • 沧州响应式网站开发微信公众平台网站建设新闻报道
  • 营销网站的关键字网站响应速度优化
  • 哪个公司建网站最好台州市建设监理协会网站
  • 青海建设厅网站证件查询网站开发嘉比格网络
  • seo搜索优化培训网站建设seo虾哥网络
  • 网站及单位网站建设情况电商网站制作价格