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

电商网站建设实训心得永久开源的免费建站系统

电商网站建设实训心得,永久开源的免费建站系统,甘肃省环保建设申报网站,无锡工程建设信息网站Java中工厂模式和抽象工厂模式的区别 在 Java 中,工厂模式 和 抽象工厂模式 的区别主要体现在它们的抽象层次和创建对象的方式。 1. 工厂模式(Factory Method Pattern) 定义: 工厂模式定义了一个接口,用来创建对象&a…

Java中工厂模式和抽象工厂模式的区别

在 Java 中,工厂模式 和 抽象工厂模式 的区别主要体现在它们的抽象层次和创建对象的方式。

1. 工厂模式(Factory Method Pattern)

  • 定义:
    工厂模式定义了一个接口,用来创建对象,但由子类决定实例化哪个类。工厂方法让客户端不需要关心具体对象的创建过程,只需要调用工厂方法。

  • 特点:
    通过工厂方法来创建对象。
    每个具体的工厂类负责创建一个具体的产品。
    适用于创建一个对象的场景。

2. 抽象工厂模式(Abstract Factory Pattern)

  • 定义:
    抽象工厂模式提供一个接口,用于创建一系列相关或依赖的对象,而不需要指定具体的类。它比工厂模式更为复杂,通常用于创建一组相关的对象。

  • 特点:
    提供多个方法来创建一组相关产品。
    客户端通过抽象工厂来创建多个相关产品,而不关心具体的类。
    适用于创建多个产品系列的场景。

区别总结:

  • 工厂模式:用于创建一个单一对象。
  • 抽象工厂模式:用于创建一组相关或依赖的对象,通常是多个产品。

通俗易懂的例子:

假设你正在设计一个 家具工厂,这个工厂生产不同类型的家具,比如 椅子 和 沙发。你可以使用工厂模式和抽象工厂模式来设计这个系统。

1. 工厂模式(Factory Method Pattern)示例:

在工厂模式中,我们只有一个工厂来生产一种产品,假设这个产品是椅子,工厂通过工厂方法来创建椅子。

// 产品接口
interface Furniture {void create();
}// 具体产品类 - 椅子
class Chair implements Furniture {@Overridepublic void create() {System.out.println("Creating a chair");}
}// 具体产品类 - 沙发
class Sofa implements Furniture {@Overridepublic void create() {System.out.println("Creating a sofa");}
}// 工厂接口
interface FurnitureFactory {Furniture createFurniture();
}// 具体工厂类 - 椅子工厂
class ChairFactory implements FurnitureFactory {@Overridepublic Furniture createFurniture() {return new Chair();}
}// 具体工厂类 - 沙发工厂
class SofaFactory implements FurnitureFactory {@Overridepublic Furniture createFurniture() {return new Sofa();}
}// 客户端代码
public class FactoryMethodExample {public static void main(String[] args) {FurnitureFactory chairFactory = new ChairFactory();Furniture chair = chairFactory.createFurniture();chair.create();  // 输出: Creating a chairFurnitureFactory sofaFactory = new SofaFactory();Furniture sofa = sofaFactory.createFurniture();sofa.create();  // 输出: Creating a sofa}
}
总结:

在这个例子中,ChairFactory 和 SofaFactory 是单独的工厂,每个工厂负责创建一个具体的家具对象。在这种情况下,工厂模式适合创建一个产品(如椅子或沙发)。

2. 抽象工厂模式(Abstract Factory Pattern)示例:

在抽象工厂模式中,我们不仅创建单一的产品(如椅子或沙发),而是创建一系列相关产品,例如创建一个 现代风格 或 经典风格 的家具系列。每个系列包括不同的家具(椅子、沙发等)。

// 产品接口
interface Chair {void create();
}interface Sofa {void create();
}// 具体产品类 - 现代风格椅子
class ModernChair implements Chair {@Overridepublic void create() {System.out.println("Creating a modern chair");}
}// 具体产品类 - 经典风格椅子
class ClassicChair implements Chair {@Overridepublic void create() {System.out.println("Creating a classic chair");}
}// 具体产品类 - 现代风格沙发
class ModernSofa implements Sofa {@Overridepublic void create() {System.out.println("Creating a modern sofa");}
}// 具体产品类 - 经典风格沙发
class ClassicSofa implements Sofa {@Overridepublic void create() {System.out.println("Creating a classic sofa");}
}// 抽象工厂接口
interface FurnitureFactory {Chair createChair();Sofa createSofa();
}// 具体工厂类 - 现代风格家具工厂
class ModernFurnitureFactory implements FurnitureFactory {@Overridepublic Chair createChair() {return new ModernChair();}@Overridepublic Sofa createSofa() {return new ModernSofa();}
}// 具体工厂类 - 经典风格家具工厂
class ClassicFurnitureFactory implements FurnitureFactory {@Overridepublic Chair createChair() {return new ClassicChair();}@Overridepublic Sofa createSofa() {return new ClassicSofa();}
}// 客户端代码
public class AbstractFactoryExample {public static void main(String[] args) {FurnitureFactory modernFactory = new ModernFurnitureFactory();Chair modernChair = modernFactory.createChair();Sofa modernSofa = modernFactory.createSofa();modernChair.create();  // 输出: Creating a modern chairmodernSofa.create();   // 输出: Creating a modern sofaFurnitureFactory classicFactory = new ClassicFurnitureFactory();Chair classicChair = classicFactory.createChair();Sofa classicSofa = classicFactory.createSofa();classicChair.create();  // 输出: Creating a classic chairclassicSofa.create();   // 输出: Creating a classic sofa}
}
总结:

在这个例子中,ModernFurnitureFactory 和 ClassicFurnitureFactory 是两个具体的抽象工厂,它们分别创建现代风格和经典风格的椅子和沙发。每个工厂负责创建多个相关产品(椅子、沙发等)。

总结对比:
  • 工厂模式:创建单一产品(如椅子或沙发),每个工厂负责创建一个具体产品。
  • 抽象工厂模式:创建一系列相关产品(如椅子和沙发),每个工厂负责创建一组相关产品,适用于产品之间有关系的情况。
http://www.dtcms.com/wzjs/307488.html

相关文章:

  • 南昌做任务的网站2023年第三波疫情9月
  • 户型图在线设计网站西安网站seo优化公司
  • 甘肃省委党的建设杂志社网站厦门人才网官网
  • 制作网站登录超级seo工具
  • 网站初期推广方案搜索网站排行
  • 网页游戏排行榜在线玩seo 优化公司
  • 网站制作时滚动页怎么做外贸独立站怎么做
  • smush.it wordpress网站seo设计
  • 南宁建站软件湖南网站设计
  • 网页制作工作程序在广州做seo找哪家公司
  • 北京市建设厅网站首页沈阳seo关键词排名
  • wordpress 嵌入百度地图网站seo规划
  • 做网站现在用什么语言品牌整合营销推广
  • 武汉 网站制作怎样给自己的网站做优化
  • 外贸网站该怎么做南京响应式网站建设
  • 英文公司网站制作怎么给客户推广自己的产品
  • 网站建设公司做销售好不好磁力链最好用的搜索引擎
  • 外贸网站建设要求网店运营推广平台
  • 慢慢网站建设深圳seo关键词优化
  • 广东企业网站建设公司价格怎样建网站?
  • 汕头网站建设托管天眼查企业查询入口
  • 彩妆做推广的网站国内最新的新闻
  • 一个人看的日本在线视频观看网站优化推广外包
  • 网站给假冒伪劣产品做推广站长统计入口
  • 个人旅游网站模板软件怎么推广
  • 网络公司排行惠州百度seo哪里强
  • 茂名网站建设公司企业网站建设哪家好
  • 中山高端网站建设价格十大互联网平台
  • 企业网站管理系统破解版百度关键词热度查询
  • 电商网站开发视频网址提交百度