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

网站开发有什么软件有哪些域名申请的流程

网站开发有什么软件有哪些,域名申请的流程,中国做外国网购的网站,在线答题网站开发1. 核心思想 工厂方法模式(Factory Method Pattern)将对象的创建过程延迟到子类。具体来说,定义一个创建对象的接口(抽象工厂),但由子类决定实例化哪个具体类。这种方式解耦了对象的创建和使用&#xff0c…

1. 核心思想

工厂方法模式(Factory Method Pattern)将对象的创建过程延迟到子类。具体来说,定义一个创建对象的接口(抽象工厂),但由子类决定实例化哪个具体类。这种方式解耦了对象的创建和使用,使系统更灵活、可扩展。
用大白话来说就是对象的接口就是USB接口,你要使用什么设备只要他是USB口的都可以接上去进行基本的使用。

2. 模式结构

角色作用示例
抽象产品定义产品的接口Animal接口
具体产品实现抽象产品的具体类Dog、Cat类
抽象工厂声明创建产品的方法AnimalFactory接口
具体工厂实现抽象工厂,生产具体产品DogFactory、CatFactory类

比如说抽象产品是油炸类,具体的产品就可以是炸豆腐,抽象工厂就可以是生产油炸食品,具体工厂就是生产炸豆腐工厂

3. 代码示例

PHP代码

<?php 
// 抽象产品 
abstract class Animal { abstract public function speak(); 
} // 具体产品 
class Dog extends Animal { public function speak() { return "汪汪!"; } 
} class Cat extends Animal { public function speak() { return "喵喵!"; } 
} // 抽象工厂 
abstract class AnimalFactory { abstract public function create_animal(); 
} // 具体工厂 
class DogFactory extends AnimalFactory { public function create_animal() { return new Dog(); } 
} class CatFactory extends AnimalFactory { public function create_animal() { return new Cat(); } 
} // 客户端使用 
$dog_factory = new DogFactory(); 
$dog = $dog_factory->create_animal(); 
echo $dog->speak(); // 输出:汪汪! 
echo "<br>"; $cat_factory = new CatFactory(); 
$cat = $cat_factory->create_animal(); 
echo $cat->speak(); // 输出:喵喵! 
?> 

python代码

# 抽象产品
class Animal:def speak(self):pass# 具体产品
class Dog(Animal):def speak(self):return "汪汪!"class Cat(Animal):def speak(self):return "喵喵!"# 抽象工厂
class AnimalFactory:def create_animal(self):pass# 具体工厂
class DogFactory(AnimalFactory):def create_animal(self):return Dog()class CatFactory(AnimalFactory):def create_animal(self):return Cat()# 客户端使用
dog_factory = DogFactory()
dog = dog_factory.create_animal()
print(dog.speak())  # 输出:汪汪!cat_factory = CatFactory()
cat = cat_factory.create_animal()
print(cat.speak())  # 输出:喵喵!

Java代码

// 抽象产品 
abstract class Animal { public abstract String speak(); 
} // 具体产品:狗 
class Dog extends Animal { @Override public String speak() { return "汪汪!"; } 
} // 具体产品:猫 
class Cat extends Animal { @Override public String speak() { return "喵喵!"; } 
} // 抽象工厂 
abstract class AnimalFactory { public abstract Animal create_animal(); 
} // 具体工厂:狗工厂 
class DogFactory extends AnimalFactory { @Override public Animal create_animal() { return new Dog(); } 
} // 具体工厂:猫工厂 
class CatFactory extends AnimalFactory { @Override public Animal create_animal() { return new Cat(); } 
} // 客户端使用 
public class Main { public static void main(String[] args) { AnimalFactory dogFactory = new DogFactory(); Animal dog = dogFactory.create_animal();  System.out.println(dog.speak());   // 输出:汪汪! AnimalFactory catFactory = new CatFactory(); Animal cat = catFactory.create_animal();  System.out.println(cat.speak());   // 输出:喵喵! } 
} 

4. 应用场景

需要动态扩展产品类型:例如新增一种动物(如Bird),只需添加Bird类和BirdFactory类,无需修改现有代码。
系统需要解耦:客户端只需依赖抽象接口(Animal和AnimalFactory),不关心具体实现。

5. 优缺点对比

优点缺点
符合开闭原则(扩展开放)类数量增加,代码复杂度高
解耦创建逻辑与业务逻辑需要为每个产品编写工厂类
支持多态和扩展

6. 对比简单工厂模式

简单工厂:一个工厂类集中创建所有产品(如AnimalFactory.create(“Dog”)),违反开闭原则。
工厂方法:每个产品对应一个工厂类,扩展时只需新增类,无需修改原有代码。

思维导图

在这里插入图片描述

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

相关文章:

  • 免费网站建设策划磁力下载
  • 从化区建设网站百度识图搜索引擎
  • 海口市做网站的公司武汉seo首页优化公司
  • Linux网站建设总结上海有哪些优化网站推广公司
  • 网站建设与运营市场开发方案seo积分优化
  • 怎么建立一个网站卖东西详情页设计
  • 设计一个网站先做哪些构造搜狗seo排名软件
  • 做网站网页排版错误网络营销做得好的企业有哪些
  • 百度门店推广百度网站关键词优化
  • 飞飞cms悠悠电影网站注册网址在哪里注册
  • 用jsp做网站有什么好处百度账号安全中心
  • 网站推广排名收费营销伎巧第一季
  • 乡土文化网站怎么做赣州seo外包
  • 各大城市网站哪里做互联网营销师报名官网
  • 深圳网站设计公司发展历程怎么做网络营销平台
  • 温州创荣网络科技有限公司优化大师软件大全
  • 怎样查看网站的权重新媒体营销案例ppt
  • 荥阳做网站网站报价
  • 沙井商城网站建设企业网站设计与推广
  • 武汉网站建设优化如何优化网络延迟
  • 网站建设的职称搜索引擎优化的核心本质
  • 富拉尔基网站建设大数据营销名词解释
  • 抚州网站推广可以免费网络推广网站
  • 建设购物网站沈阳网站建设公司
  • 设计素材网站花瓣网址ip地址查询工具
  • 贵阳网站制作方舟网络靠谱的代运营公司
  • c 网站开发htnl长沙官网优化公司
  • 做设计的兼职网站有哪些网络营销策划推广公司
  • 石家庄电商网站免费b站软件下载
  • 建网站 南京百度账号快速注册