• 首页
        • 更多产品

          客户为中心的产品管理工具

          专业的软件研发项目管理工具

          简单易用的团队知识库管理

          可量化的研发效能度量工具

          测试用例维护与计划执行

          以团队为中心的协作沟通

          研发工作流自动化工具

          账号认证与安全管理工具

          Why PingCode
          为什么选择 PingCode ?

          6000+企业信赖之选,为研发团队降本增效

  • Jira替代方案
目录

java设计模式中工厂与代理有哪些区别

java设计模式中工厂与代理的区别是:1、模式目标不同;2、解决的问题不同。工厂模式的目标是定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。代理模式的目标是为其他对象提供一种代理以控制对这个对象的访问。

一、java设计模式中工厂与代理的区别

1、模式目标不同

工厂模式的目标是定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。

代理模式的目标是为其他对象提供一种代理以控制对这个对象的访问。

2、解决的问题不同

工厂模式主要解决接口选择的问题。工厂模式实际是对OOP多态的实现,核心会有一个抽象父类, 多个实现子类, 一个工厂类。其中工厂类可以根据需求生产不同实现的子类。

代理模式主要解决在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会给使用者或者系统结构带来很多麻烦,我们可以在访问此对象时加上一个对此对象的访问层。

延伸阅读:

二、什么是代理模式

代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。简单的说就是,我们在访问实际对象时,是通过代理对象来访问的,代理模式就是在访问实际对象时引入一定程度的间接性,因为这种间接性,可以附加多种用途。

以上就是关于工厂与代理的区别的内容了,希望对大家有帮助。

一站式研发项目管理平台 PingCode

一站式研发项目管理平台 PingCode

支持敏捷\瀑布、知识库、迭代计划&跟踪、需求、缺陷、测试管理,同时满足非研发团队的流程规划、项目管理和在线办公需要。

相关文章

Eclipse和MyEclipse有哪些区别

百科

Apache和Apache Tomcat有哪些区别

百科

@Autowired和@Resource有哪些区别

百科

华为欧拉操作系统和鸿蒙OS有哪些区别

百科

分支器和分配器有哪些区别

百科

架构师和程序员有哪些区别

百科

PHP与Java有哪些区别

百科

.net 和 .com 和 .cn 有哪些区别

百科

B/S和C/S架构有哪些区别

百科

Java 和 Python有哪些区别

百科