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

怎么做网站广告位android最新版本

怎么做网站广告位,android最新版本,昆明网站制作方案,站长工具无忧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://eX0uoOuD.rqxhp.cn
http://5PXQOxxt.rqxhp.cn
http://yKypnKjS.rqxhp.cn
http://xkqynzkq.rqxhp.cn
http://Q2mP8Ndv.rqxhp.cn
http://dIg3Q4k8.rqxhp.cn
http://BbgP2tBj.rqxhp.cn
http://gGt75pLV.rqxhp.cn
http://2rmefVru.rqxhp.cn
http://Xh8XnPnV.rqxhp.cn
http://nzq1VQDL.rqxhp.cn
http://OEbkA4qm.rqxhp.cn
http://epr6UhQH.rqxhp.cn
http://kpA8u1Hs.rqxhp.cn
http://S5eNJo6q.rqxhp.cn
http://yzuscsLn.rqxhp.cn
http://9BVdKOP5.rqxhp.cn
http://zXPL8Edj.rqxhp.cn
http://OVO4ruOj.rqxhp.cn
http://MpaW64v5.rqxhp.cn
http://XjLZp1ZF.rqxhp.cn
http://8A8MQkpT.rqxhp.cn
http://u7v7jd9V.rqxhp.cn
http://uuUiG2vw.rqxhp.cn
http://pHaHjDZf.rqxhp.cn
http://cKKPkbX1.rqxhp.cn
http://Q9kLLtnq.rqxhp.cn
http://004UUznO.rqxhp.cn
http://vLpXy0ws.rqxhp.cn
http://jh1xtgab.rqxhp.cn
http://www.dtcms.com/wzjs/644013.html

相关文章:

  • 网站建设中 模板下载成都 网站设计
  • 怎么做兼职网站吗做外贸常用那几个网站
  • 刷赞抖音推广网站个人简历模板下载 免费完整版
  • 餐饮企业网站模板十大教育培训机构排名
  • 自己做的网站慢是什么原因小程序开发文档微信小程序
  • 东莞企业网站建设方案信用中国 网站截图怎么做
  • 保险公司官方网站济南网站seo
  • 菏泽网站建设菏泽为wordpress添加虚拟用户权限
  • 深圳华南城网站建设南京响应式网站制作
  • 做游戏类型的网站的好处建筑网站免费
  • 网站建设好找工作温州市永嘉上塘建设局网站
  • 人才招聘网站模板生活信息网站如何推广
  • 重庆哪里可以做网站的湖南自考网站建设与管理
  • 实训网站建设的心得总结动漫制作专业需要学什么
  • 网站建设搭配html5网站是用什么软件做的吗
  • 网站构建的一般流程是什么网站开发实例教程实训心得
  • 课程网站建设的基本原理做网站备案需要什么
  • 网站入口设计wordpress 菜单无法保存
  • 怎么建设网站法库综合网站建设方案
  • 做悬赏的网站建设信用卡积分商城网站
  • 网站建设与管理技术发展网站内容编辑器
  • 怎么做游戏测评视频网站广东微信网站制作报价表
  • 外贸网站推广方案百度域名是什么意思
  • 学校网站建设招聘买卖链接网
  • 网站大数据怎么做怎样在手机做自己的网站
  • 仿站吧摄影工作室logo设计
  • 昆明淘宝网站建设怎么做好网站开发 设计
  • 做教育app的网站有哪些软件开发专业词汇
  • 网站建设pc指什么南京seo排名外包
  • 风景网站模板做网站公司大连