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

做签证的网站app香港账号

做签证的网站,app香港账号,宁波公司招聘,天猫优惠券网站怎么做的一、原理与通俗理解 模板方法模式定义了一个算法的骨架,将某些步骤推迟到子类中实现。模板方法定义一个算法的骨架,将一些步骤的实现延迟到子类中完成。这样做的目的是确保算法的结构保持不变,同时又可以为不同的子类提供特定步骤的实现。 比如去餐馆吃饭,餐馆有固定的流程(下…一、原理与通俗理解 模板方法模式定义了一个算法的骨架,将某些步骤推迟到子类中实现。模板方法定义一个算法的骨架,将一些步骤的实现延迟到子类中完成。这样做的目的是确保算法的结构保持不变,同时又可以为不同的子类提供特定步骤的实现。 比如去餐馆吃饭,餐馆有固定的流程(下单-上菜-吃饭-付款),这就是模板方法。但对于不同的顾客,他们点的菜不同(重写了上菜这一步骤)。 二、案例演示 员工审核系统需求 收集员工信息验证员工资格核心决策是否雇佣雇佣或拒绝员工 // 抽象类 - 模板方法 abstract class EmployeeApprover {// 模板方法public final void processRequest(EmployeeRequest request) {collectEmployeeInfo(request); // 1verifyEmployeeInfo(request); // 2if (approveEmployee(request)) { // 3hireEmployee(request); // 4} else {rejectEmployee(request); // 4}}// 收集员工信息 - 由子类实现protected abstract void collectEmployeeInfo(EmployeeRequest request);// 验证员工资格 - 由子类实现protected abstract void verifyEmployeeInfo(EmployeeRequest request);// 核心决策 - 由子类实现protected abstract boolean approveEmployee(EmployeeRequest request);// 具体雇佣步骤private void hireEmployee(EmployeeRequest request) {System.out.println(已雇佣员工: request.getName());}// 具体拒绝步骤private void rejectEmployee(EmployeeRequest request) {System.out.println(已拒绝员工: request.getName());} }// 具体子类 - 实现抽象方法 class ITEmployeeApprover extends EmployeeApprover {Overrideprotected void collectEmployeeInfo(EmployeeRequest request) {// 收集IT员工信息}Overrideprotected void verifyEmployeeInfo(EmployeeRequest request) {// 验证IT员工资格}Overrideprotected boolean approveEmployee(EmployeeRequest request) {// 审核IT员工是否合格return true;} }CRM系统订单处理需求 收集订单信息验证订单信息核心决策是否发货发货或拒绝订单 // 抽象类 - 模板方法 abstract class OrderProcessor {// 模板方法public final void processOrder(Order order) {collectOrderInfo(order); // 1verifyOrderInfo(order); // 2if (approveOrder(order)) { // 3shipOrder(order); // 4} else {rejectOrder(order); // 4}}// 收集订单信息 - 由子类实现protected abstract void collectOrderInfo(Order order);// 验证订单信息 - 由子类实现protected abstract void verifyOrderInfo(Order order);// 核心决策 - 由子类实现 protected abstract boolean approveOrder(Order order);// 具体发货步骤private void shipOrder(Order order) {System.out.println(已发货订单: order.getId());}// 具体拒绝步骤private void rejectOrder(Order order) {System.out.println(已拒绝订单: order.getId());} }// 具体子类 - 实现抽象方法 class OnlineOrderProcessor extends OrderProcessor {Overrideprotected void collectOrderInfo(Order order) {// 收集在线订单信息}Overrideprotected void verifyOrderInfo(Order order) {// 验证在线订单信息}Overrideprotected boolean approveOrder(Order order) {// 审核在线订单是否合格return true;} }三、Java源码中的模板方法模式 InputStream抽象类 InputStream定义了读取数据的标准方法read(),而具体的读取方式由子类实现。 public abstract class InputStream implements Closeable {public abstract int read() throws IOException;public int read(byte b[]) throws IOException {return read(b, 0, b.length);}public int read(byte b[], int off, int len) throws IOException {// 模板方法}// 其他方法... }AbstractList抽象类 AbstractList提供了模板方法addAll()用于批量添加元素,而具体的添加逻辑由子类实现。 public abstract class AbstractListE extends AbstractCollectionE implements ListE {public boolean addAll(Collection? extends E c) {// 模板方法return batchOperation(c, true);}private boolean batchOperation(...) {// ...for (E e : c)result add(e); // 调用抽象方法}public abstract boolean add(E e); // 抽象方法,子类实现 }Spring JdbcTemplate JdbcTemplate使用模板方法模式对底层的JDBC操作进行封装,开发者只需实现回调接口即可。以query方法为例: public class JdbcTemplate extends JdbcAccessor implements JdbcOperations { public T T query(String sql, Object[] args, ResultSetExtractorT rse) throws DataAccessException {// 模板方法return query(sql, newArgPreparedStatementSetter(args), rse);}// 实际的查询逻辑private T T query(PreparedStatementCreator psc, ResultSetExtractorT rse) throws DataAccessException {// 具体的数据库操作...rse.extractData(rs); // 调用回调接口} }四、总结优缺点以及使用经验 优点: 封装不变部分,扩展可变部分,代码复用性好父类调用子类操作,通过子类扩展增强功能符合开闭原则和里氏替换原则 缺点: 每个不同的实现都需要定义一个子类,类的个数可能过多父类和子类之间存在潜在的扩展性限制编写过程复杂,逻辑较难理解 使用经验: 适用于复杂流程,有固定不变的算法骨架和某些可变的细节需要先分清楚算法固定部分和可变部分体现了模板模式的核心思想继承 多态在框架设计中是常用的模式,可以提高代码的复用性不建议过度使用,需要权衡利弊,避免类膨胀 模板方法模式是一种典型的通过交换算法步骤扩展功能的设计模式,适用于算法骨架固定,某些步骤需要不同实现的场景。恰当使用可以提高代码复用性和系统扩展性。
http://www.dnsts.com.cn/news/2705.html

相关文章:

  • 自己的网站打不开百度账号中心
  • 腾讯云网站建设的步骤过程sem竞价推广
  • 专门做运动鞋的网站网站优化培训班
  • 哈尔滨网站建设咨询营销策略有哪些4种
  • 免费网站入口网站免费进最新长尾关键词挖掘
  • 高端大气的ppt模板宁波seo外包引流推广
  • 龙华三网合一网站建设seo搜索如何优化
  • 湛江有没有做网站的培训网站搭建
  • 淘宝网站建设杭州做个电商平台要多少钱
  • 做五金国际网站哪个好网站宣传文案
  • 如何查看网站收录情况深圳sem优化
  • 做个网站需要什么设备跨境电商有哪些平台
  • 厦门做网站推广今天中国新闻
  • 郑州郑州网站建设河南做网站公司哪家好项目推广计划书
  • 网页特效代码免费网站外包公司怎么赚钱
  • 备案网站注意事项淘宝客seo推广教程
  • zencart网站地图生成怎么去做网络推广
  • wordpress ip排行好看的seo网站
  • 龙华网站建设网站定制培训网登录入口
  • 建筑网站转发西安seo关键字优化
  • 怎么做网站底部文件seo关键词优化价格
  • 日照网站建设咨询报价西安网站搭建
  • 制作一个网站的费用山东济南最新消息
  • 做网站优化用什么软件如何建立网上销售平台
  • 网站被做跳转怎么办seo辅助工具
  • 大连公司企业网站建设青岛网站快速排名提升
  • 网站建立计划书搜索引擎营销策划方案
  • 网站标签怎么做百度网页推广费用
  • 做网站视频用哪个视频编辑软件如何推广网站方法
  • 免费微网站与公众号平台对接搜索引擎营销方法