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

做一样的模板网站会被告侵权吗sem推广代运营

做一样的模板网站会被告侵权吗,sem推广代运营,建设网站的岗位,网站做不做双解析一、定义: 定义一个操作中的算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 二、结构: AbstractClass抽象类:定义算法的骨架,包含模板方法和若干…

一、定义:

        定义一个操作中的算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

二、结构:

        AbstractClass抽象类:定义算法的骨架,包含模板方法和若干基本方法(抽象方法、具体方法、钩子方法)。

        ConcreteClass具体子类:实现抽象类中的抽象方法,覆盖某些具体方法或钩子方法以定制算法的步骤。

三、代码示例:

        1.抽象模板类

public abstract class DataExporter {

    // 模板方法(final禁止覆盖)
    public final void exportData(List<String> data, String filename) {
        if (validateData(data)) {
            String formattedData = formatData(data); // 抽象方法
            writeToFile(formattedData, filename);     // 抽象方法
            sendNotification();                      // 钩子方法
        }
    }

    // 抽象方法(子类必须实现)
    protected abstract String formatData(List<String> data);
    protected abstract void writeToFile(String content, String filename);

    // 具体方法(默认实现)
    protected boolean validateData(List<String> data) {
        return data != null && !data.isEmpty();
    }

    // 钩子方法(子类可选覆盖)
    protected void sendNotification() {
        // 默认不发送通知
    }
}
        2.具体子类

// 导出为 CSV 格式
public class CsvExporter extends DataExporter {
    @Override
    protected String formatData(List<String> data) {
        return String.join(",", data); // 转换为 CSV
    }

    @Override
    protected void writeToFile(String content, String filename) {
        try (FileWriter writer = new FileWriter(filename)) {
            writer.write(content);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    // 覆盖钩子方法(导出后发送通知)
    @Override
    protected void sendNotification() {
        System.out.println("CSV文件导出完成!");
    }
}

// 导出为 JSON 格式
public class JsonExporter extends DataExporter {
    @Override
    protected String formatData(List<String> data) {
        return "{ \"data\": " + data.toString() + " }"; // 简化的JSON格式
    }

    @Override
    protected void writeToFile(String content, String filename) {
        try (FileWriter writer = new FileWriter(filename)) {
            writer.write(content);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
        3.使用模板方法

public class Main {
    public static void main(String[] args) {
        List<String> data = Arrays.asList("Apple", "Banana", "Cherry");

        // 导出为 CSV
        DataExporter csvExporter = new CsvExporter();
        csvExporter.exportData(data, "data.csv");

        // 导出为 JSON
        DataExporter jsonExporter = new JsonExporter();
        jsonExporter.exportData(data, "data.json");
    }
}
 

四、应用场景:

        1.多个子类有相同流程但部分步骤不同,如文件导出,网络请求。

        2.需要控制子类的扩展点,如钩子方法。

        3.框架设计,如Activity的生命周期,AsyncTask。

五、优缺点:

优点:

        1.代码复用,避免重复算法流程;

        2.扩展性强,子类只需关注差异步骤;

        3.封装不变部分,提升可维护性。

缺点:

        1.灵活性受限,算法流程固定;

        2.继承强耦合,违法合成复用原则

        3.父类修改影响子类

http://www.dtcms.com/wzjs/427972.html

相关文章:

  • 橱柜网站源码当下最流行的营销方式
  • 京东网站建设费用友情链接交换形式
  • 大连网站建设五年级上册语文优化设计答案
  • 软件开发招标网站百度怎么精准搜索
  • 做网站需要什么部门批准高端快速建站
  • 做网站用html5上海专业seo公司
  • 建立网站怎么做关键字昆明新闻头条最新消息
  • 北京公司模板网站好t和p在一起怎么做网站
  • 秦皇岛企业建设网站天津百度推广网络科技公司
  • 家纺网站建设免费的网站
  • 云南省植保植检站网址永久免费的电销外呼系统
  • 即墨做网站的网页设计网站建设
  • 温江做网站的公司宁波核心关键词seo收费
  • 企业网络安全管理制度和应急预案福建seo排名
  • 自己建商城型网站怎样做网站
  • 第一次做网站合肥360seo排名
  • 网站开发日志模板教育培训加盟
  • 大连网站排名公司手机怎么制作网站
  • 青岛网站域名备案代刷网站推广链接0元价格
  • ps软件手机版下载优化网站广告优化
  • 2018年企业网站优化如何做互联网营销主要学什么
  • 中小企业网站制作费用新东方烹饪学校
  • 毕业设计论文代做网站优化站点
  • 捷信做单网站百度总部地址
  • 公司两个网站如何都备案深圳网络推广怎么做
  • 足球反波胆网站开发互联网关键词优化
  • 网站管理员作用百度关键词指数查询
  • 做网站可以用.cn域名吗网站开发用什么语言
  • 网站开发参数夫唯seo教程
  • 利用淘宝做网站卖货到国外网络营销策略有哪些