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

南阳网站建设的公司如何快速搭建一个网站

南阳网站建设的公司,如何快速搭建一个网站,网络销售怎么样,垂直门户网站的盈利模式探讨一、原理与通俗理解 模板方法模式定义了一个算法的骨架,将某些步骤推迟到子类中实现。模板方法定义一个算法的骨架,将一些步骤的实现延迟到子类中完成。这样做的目的是确保算法的结构保持不变,同时又可以为不同的子类提供特定步骤的实现。 比如去餐馆吃饭,餐馆有固定的流程(下…

一、原理与通俗理解

模板方法模式定义了一个算法的骨架,将某些步骤推迟到子类中实现。模板方法定义一个算法的骨架,将一些步骤的实现延迟到子类中完成。这样做的目的是确保算法的结构保持不变,同时又可以为不同的子类提供特定步骤的实现。

比如去餐馆吃饭,餐馆有固定的流程(下单->上菜->吃饭->付款),这就是模板方法。但对于不同的顾客,他们点的菜不同(重写了上菜这一步骤)。

二、案例演示

  1. 员工审核系统需求
    1. 收集员工信息
    2. 验证员工资格
    3. 核心决策是否雇佣
    4. 雇佣或拒绝员工
// 抽象类 - 模板方法
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;}
}
  1. CRM系统订单处理需求
    1. 收集订单信息
    2. 验证订单信息
    3. 核心决策是否发货
    4. 发货或拒绝订单
// 抽象类 - 模板方法
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源码中的模板方法模式

  1. 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 {// 模板方法}// 其他方法...
}
  1. AbstractList抽象类

AbstractList提供了模板方法addAll()用于批量添加元素,而具体的添加逻辑由子类实现。

public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E> {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); // 抽象方法,子类实现
}
  1. Spring JdbcTemplate

JdbcTemplate使用模板方法模式对底层的JDBC操作进行封装,开发者只需实现回调接口即可。以query方法为例:

public class JdbcTemplate extends JdbcAccessor implements JdbcOperations {  public <T> T query(String sql, Object[] args, ResultSetExtractor<T> rse) throws DataAccessException {// 模板方法return query(sql, newArgPreparedStatementSetter(args), rse);}// 实际的查询逻辑private <T> T query(PreparedStatementCreator psc, ResultSetExtractor<T> rse) throws DataAccessException {// 具体的数据库操作...rse.extractData(rs); // 调用回调接口}
}

四、总结优缺点以及使用经验

优点:

  1. 封装不变部分,扩展可变部分,代码复用性好
  2. 父类调用子类操作,通过子类扩展增强功能
  3. 符合开闭原则和里氏替换原则

缺点:

  1. 每个不同的实现都需要定义一个子类,类的个数可能过多
  2. 父类和子类之间存在潜在的扩展性限制
  3. 编写过程复杂,逻辑较难理解

使用经验:

  1. 适用于复杂流程,有固定不变的算法骨架和某些可变的细节
  2. 需要先分清楚算法固定部分和可变部分
  3. 体现了模板模式的核心思想"继承 + 多态"
  4. 在框架设计中是常用的模式,可以提高代码的复用性
  5. 不建议过度使用,需要权衡利弊,避免类膨胀

模板方法模式是一种典型的通过交换算法步骤扩展功能的设计模式,适用于算法骨架固定,某些步骤需要不同实现的场景。恰当使用可以提高代码复用性和系统扩展性。

http://www.hkea.cn/news/507337/

相关文章:

  • 党委网站建设要求凡科建站靠谱吗
  • wordpress 安卓客户端福建seo优化
  • 襄阳seo技术长沙seo网站优化
  • 做一的同志小说网站做seo要投入什么
  • 网站的文件结构百度搜索排名怎么收费
  • 全景网站app网络营销工具分析
  • 南京建设工程交易中心网站seo是什么的简称
  • 利用vps做网站关键字排名查询
  • 常熟网站制作找哪家好品牌型网站制作价格
  • 怎么做自己网站推广网络广告
  • 化州网站建设促销方法100种
  • 长沙专业网站设计平台新闻最新消息10条
  • 惠州网站建设制作宣传推广方案
  • 宁波网站推广外包服务长岭网站优化公司
  • 哈尔滨市哪里做淘宝网站seo课程心得体会
  • 做网站建设公司企业一个企业该如何进行网络营销
  • 移动端h5网站开发服务企业seo推广
  • 管理公司网站建设引擎搜索优化
  • 上市公司专利查询网站百度广告投放价格
  • html5电商网页制作网站怎么seo关键词排名优化推广
  • 大同网站建设黄冈网站推广优化找哪家
  • 昌邑网站建设站长之家网站排名
  • 建设企业网站的需求分析免费域名
  • 重庆欧勒精细有限公司网站策划书百度竞价推广开户
  • 怎么做一键添加信任网站ios aso优化工具
  • ps做网站的分辨率多少钱苹果cms永久免费建站程序
  • 网站推广积分常用于网站推广的营销手段是
  • wordpress时间云储存沈阳网站制作优化推广
  • h5响应式网站建设竞价托管哪家效果好
  • 企业解决方案参考网站品牌软文营销案例