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

怎么在境外做网站网络营销策略的演变

怎么在境外做网站,网络营销策略的演变,生鲜市场型网站开发,智慧团建初始密码123456模板模式和建造者模式是两种不同的设计模式,下面从定义、结构、应用场景等方面介绍它们的区别,并给出 Python 示例代码。 定义 模板模式:定义了一个操作中的算法骨架,将一些步骤的实现延迟到子类中。这样,子类可以在…

模板模式和建造者模式是两种不同的设计模式,下面从定义、结构、应用场景等方面介绍它们的区别,并给出 Python 示例代码。

定义

  • 模板模式:定义了一个操作中的算法骨架,将一些步骤的实现延迟到子类中。这样,子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。
  • 建造者模式:将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。它允许你逐步构建一个复杂对象,而不是一次性创建它。

结构与角色

  • 模板模式
    • 抽象类:定义了算法的骨架,包含一些抽象方法和具体方法。抽象方法需要在子类中实现,具体方法则提供了默认的实现。
    • 具体子类:继承抽象类,实现抽象方法,完成算法中特定步骤的具体实现。
  • 建造者模式
    • 抽象建造者:定义了创建产品各个部分的抽象方法。
    • 具体建造者:实现抽象建造者的方法,构建和装配产品的各个部分。
    • 指挥者:负责调用建造者的方法来构建产品。
    • 产品:被构建的复杂对象。

适用场景

  • 模板模式
    • 多个子类有公共的方法,并且逻辑基本相同时。
    • 重要、复杂的算法,可以把核心算法设计为模板方法,周边的相关细节功能由各个子类实现。
    • 重构时,模板方法模式是一个经常使用的模式,把相同的代码抽取到父类中,然后通过钩子函数约束其行为。
  • 建造者模式
    • 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。
    • 当构造过程必须允许被构造的对象有不同表示时。

Python 示例代码

模板模式示例
  1. AbstractClass 作为抽象类定义算法骨架 template_method,含默认 step2 及待实现的 step1step3
  2. ConcreteClass1 和 ConcreteClass2 继承该抽象类,实现各自的 step1 和 step3
  3. 主程序创建这两个子类的实例并调用 template_method
  4. 按既定骨架执行不同子类的自定义步骤,实现算法复用与扩展。
# 抽象类
class AbstractClass:def template_method(self):self.step1()self.step2()self.step3()def step1(self):passdef step2(self):print("执行步骤 2 的默认操作")def step3(self):pass# 具体子类
class ConcreteClass1(AbstractClass):def step1(self):print("具体子类 1 执行步骤 1")def step3(self):print("具体子类 1 执行步骤 3")class ConcreteClass2(AbstractClass):def step1(self):print("具体子类 2 执行步骤 1")def step3(self):print("具体子类 2 执行步骤 3")# 使用示例
if __name__ == "__main__":concrete1 = ConcreteClass1()concrete1.template_method()concrete2 = ConcreteClass2()concrete2.template_method()
建造者模式示例 

想象你要组装一台电脑:

  1. 你可以选择不同的CPU、内存、硬盘、显卡等
  2. 组装步骤是固定的(先装主板,再装CPU,然后内存...)
  3. 但每个步骤的具体实现可以不同

建造者模式就是把"组装过程"和"具体零件"分离,这样你可以用相同的组装过程创建不同的电脑配置。

# 产品类 - 最终要构建的复杂对象
class Computer:def __init__(self):self.cpu = Noneself.memory = Noneself.disk = Noneself.gpu = Nonedef __str__(self):return f"Computer配置: CPU={self.cpu}, 内存={self.memory}, 硬盘={self.disk}, 显卡={self.gpu}"# 抽象建造者 - 定义构建步骤
class ComputerBuilder:def __init__(self):self.computer = Computer()def build_cpu(self):passdef build_memory(self):passdef build_disk(self):passdef build_gpu(self):passdef get_result(self):return self.computer# 具体建造者 - 实现具体构建步骤
class GamingComputerBuilder(ComputerBuilder):def build_cpu(self):self.computer.cpu = "Intel i9"def build_memory(self):self.computer.memory = "32GB DDR5"def build_disk(self):self.computer.disk = "1TB SSD"def build_gpu(self):self.computer.gpu = "NVIDIA RTX 4090"class OfficeComputerBuilder(ComputerBuilder):def build_cpu(self):self.computer.cpu = "Intel i5"def build_memory(self):self.computer.memory = "16GB DDR4"def build_disk(self):self.computer.disk = "512GB SSD"def build_gpu(self):self.computer.gpu = "集成显卡"# 指挥者 - 控制构建过程
class Director:def __init__(self, builder):self.builder = builderdef construct(self):self.builder.build_cpu()self.builder.build_memory()self.builder.build_disk()self.builder.build_gpu()return self.builder.get_result()# 客户端代码
if __name__ == "__main__":# 构建游戏电脑gaming_builder = GamingComputerBuilder()director = Director(gaming_builder)gaming_computer = director.construct()print(gaming_computer)# 构建办公电脑office_builder = OfficeComputerBuilder()director = Director(office_builder)office_computer = director.construct()print(office_computer)

总结

  • 模板模式主要关注的是算法的骨架,将一些步骤的实现延迟到子类中,强调的是算法的复用和扩展。
  • 建造者模式主要关注的是复杂对象的构建过程,将构建和表示分离,强调的是对象构建过程的灵活性和可配置性。

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

相关文章:

  • 公司做网站需要哪些资料百度站长工具
  • 企业微信网站开发公司如何免费做网站网页
  • 长春作网站建设的公司百度客服电话
  • php网站漂浮广告代码2345网址导航智能主板
  • 三星网上商城怎么取消订单吉林关键词排名优化软件
  • 做影视网站需要境外站长工具ip地址查询域名
  • 营销型网站建设的费用报价单怎么制作自己的网站
  • 企业网站建设有几种上海百度seo公司
  • 怎样建立公司的网站百度提交网站收录查询
  • 公司网站建设西安推广引流
  • 荟萃浏览器文件夹aso优化排名
  • 成都网站建设优化seo自学网免费
  • 开题报告风景区网站开发写软文推广
  • 百度怎么做网站排名广告推广方案怎么写
  • 路由器电脑可以做网站主机hao123网址之家官网
  • 做网站没有公网seo词条
  • wordpress js插入什么是搜索引擎优化的核心
  • 企业所得税怎么算100万以下广州抖音seo
  • 彩票做的最好是个网站好网店代运营哪个好
  • 企业网站优化兴田德润优惠想在百度上推广怎么做
  • 网站建设 国家技术规范青岛网站建设培训学校
  • 西安手机网站建设动力无限百度拍照搜索
  • 秦都区建设局网站招聘seo专员
  • 无忧网站建设推荐有域名有服务器怎么做网站
  • 个人可以做社区网站宁波最好的seo外包
  • 专门做中式的设计网站谷歌广告怎么投放
  • 站长之家whois查询百度seo白皮书
  • 一键提交收录seo综合查询怎么进入网站
  • 遵义做网站推广我的百度账号登录
  • midasbuy充值官方网站下载seo营销策划