首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在具有不同基类的活动之间共享代码的最佳方式是什么?

在具有不同基类的活动之间共享代码的最佳方式是什么?
EN

Stack Overflow用户
提问于 2011-04-25 08:00:36
回答 1查看 680关注 0票数 4

我有以下问题:

我有一个抽象活动类,我们称之为MyAbstractActivity,它包含一些我想重用的代码(例如:标准服务绑定器、公共菜单项、公共初始化代码等等)。通常,我只会用它来细分我的具体活动并完成它。

但是,我偶尔需要使用另一种超级类型,如ListActivity或MapActivity。

因此,问题是:如果我必须使用另一个基类,如何避免在活动中复制支持代码?

我想出了一个基于装饰模式的解决方案,比如这个:

但是,我发现这种方法存在一个问题:如何处理受保护的方法(如onCreate())?我是否应该引入一个额外的“桥梁”类,使其公开以供装饰者使用,类似于下面的方式(开始看起来有点拜占庭式.)?

还有别的办法吗?

我希望我说得比较清楚。谢谢您的反馈!

PS。在我看来,使用静态实用程序类不是一个好的解决方案,因为它带来了难以识别的编程错误的可能性。

EN

回答 1

Stack Overflow用户

发布于 2011-04-25 11:48:24

如果我正确理解,那么无论是片段还是装饰模式,对于您想要完成的任务,都不是干净的或合适的解决方案。它们被设计用来解决其他问题。

我发现自己将“支持”代码、“框架”代码或“所有那些冗长的、重复的、样板的垃圾”移到静态实用程序方法上。这不一定是我在非Android项目上采用的方法,但在我的Android项目中,它运行得非常好。

另外,要知道,不需要对ListActivity进行子类处理就可以获得ListView。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5780272

复制
相关文章
React 代码共享最佳实践方式
任何一个项目发展到一定复杂性的时候,必然会面临逻辑复用的问题。在React中实现逻辑复用通常有以下几种方式:Mixin、高阶组件(HOC)、修饰器(decorator)、Render Props、Hook。本文主要就以上几种方式的优缺点作分析,帮助开发者针对业务场景作出更适合的方式。
winty
2021/05/18
3.1K0
DevOps 共享篇:最佳共享方式
企业内部实现共享的根本目的,是为了提升企业竞争力,即,企业解决问题的能力。也就是不断优化企业员工/机制/流程。
尹东勋
2021/11/29
1.2K0
DevOps 共享篇:最佳共享方式
微服务之间的最佳调用方式
在微服务架构中,需要调用很多服务才能完成一项功能。服务之间如何互相调用就变成微服务架构中的一个关键问题。
Bug开发工程师
2020/03/16
8020
微服务之间的最佳调用方式
微服务之间的最佳调用方式
在微服务架构中,需要调用很多服务才能完成一项功能。服务之间如何互相调用就变成微服务架构中的一个关键问题。
用户1516716
2019/12/26
3.4K0
[android] 在不同的activity之间传递数据
添加<TextView/>控件,设置控件内容水平居中,android:gravity=”center_horizontal”
唯一Chat
2019/09/10
2.3K0
[android] 在不同的activity之间传递数据
iOS_实例、类、元类、基类之间的关系+结构体
OC中任何类的定义都是对象,任何对象都有isa指针。isa是一个Class类型的指针。 实例的isa指针,指向类; 类的isa指针,指向元类; 元类的isa指针,指向根元类; 父元类的isa指针,也指向根元类!! 根元类的isa指针,指向它自己!!
mikimo
2022/07/20
9290
iOS_实例、类、元类、基类之间的关系+结构体
Java中不同包下类与类之间的访问
Java中不同包下类与类之间的访问 (1)我们多次使用一个带包的类,都需要加包的全路径,非常的麻烦,这个时候,Java就提供了导包的功能,提供了一个关键字import。 (2)格式: import 包名.包名. ...包名.类名;       这种方式导入的是:到类的名称。     另一种: import 包名.包名. ... .*;(不建议) (3) package、import、class有没有顺序关系呢?     有。     package > import > class     package:只能有一个     import:可以有多个     class:可以有多个,以后建议是一个。(因为每一个类是一个独立的单元)
黑泽君
2018/10/11
3.6K0
在 request 之间共享 SecurityContext
既然 SecurityContext 是存放在 ThreadLocal 中的,而且在每次权限鉴定的时候都是从 ThreadLocal 中获取 SecurityContext 中对应的 Authentication 所拥有的权限,并且不同的 request 是不同的线程,为什么每次都可以从 ThreadLocal 中获取到当前用户对应的 SecurityContext 呢?
johnhuster的分享
2022/03/28
6920
Elasticsearch最佳实践:不同版本之间的存储成本对比
作为日志分析场景中最广泛使用的技术解决方案之一,Elasticsearch经常被竞争对手进行比较。特别是随着日志数据量的增加,日志场景中广泛比较的核心指标包括数据写入吞吐量、存储成本、查询速度和分析能力。作为一个不断创新和迭代的产品,Elasticsearch 在日志分析场景中不断引入不同的新功能,以满足客户在日志场景中不断增长的需求。
点火三周
2023/10/25
4.2K0
Elasticsearch最佳实践:不同版本之间的存储成本对比
小程序不同页面之间的传值方式
今天来说一下小程序不同页面之间传值的几种方式: 1、URL传值 这种方式最常用,比如: wx.navigateTo({ url: '../detail/detail?cid='+cid+'&ac
连胜
2018/03/07
4.4K0
使用Intent在活动之间穿梭
Intent是Android中各组件进行交互的一种重要方式,它不仅可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据.
Dream城堡
2018/12/12
6080
Sass和SCSS之间的不同之处是什么?
我已经在(http://www.sitepoint.com/author/hgiraudel/) 里写了很多关于Sass,但有一些意见明确表示,并不是每个人都知道Sass所指的是什么。这里有一点清晰:
疯狂的技术宅
2019/03/27
9720
Sass和SCSS之间的不同之处是什么?
新手学习编程的最佳方式是什么?
回答这个问题是我最近两年来唯一的关注点。我觉得此处提及的许多资源尽管都很不错,然而我却注意到,成功的学生,无论使用哪种资源,往往都会在以下三个方面,比其他人有着更好的表现。 聚焦习惯而不是目标 独自学
Crossin先生
2018/04/16
1.1K0
新手学习编程的最佳方式是什么?
新手学习编程的最佳方式是什么
回答这个问题是我最近两年来唯一的关注点。我觉得此处提及的许多资源尽管都很不错,然而我却注意到,成功的学生,无论使用哪种资源,往往都会在以下三个方面,比其他人有着更好的表现。 聚焦习惯而不是目标 独自学
程序员互动联盟
2018/03/13
1.2K0
新手学习编程的最佳方式是什么
最安全保密的文件共享方式是什么?
端到端加密是最安全保密的文件传输共享方式之一,它是一种保护文件和信息安全的方法,可以确保文件和信息在传输和存储过程中得到最高级别的保护,只有发送者和接收者才能访问和查看内容,其他人无法访问和查看内容。此外,这些共享方式还提供了灵活的权限管理和访问控制,使用户可以控制文件共享的范围和权限,进一步提高了文件和信息的安全性和保密性。
用户10264843
2023/04/06
1.1K0
Android - 使用Intent在活动之间穿梭
Intent有多个构造函数的重载,其中一个 Intent(Context packageContext,Class<?>cls)
博博1998
2022/04/25
5330
DC电源模块具有不同的安装方式和安全规范
DC电源模块是将低压直流电转换为需要的输出电压的装置。它们广泛应用于各种领域和行业,如通信、医疗、工业、家用电器等。安装DC电源模块应严格按照相关的安全规范进行,以确保其正常运行和安全使用。
河北稳控科技
2023/09/19
2030
DC电源模块具有不同的安装方式和安全规范
MVC的基类
设计一个验证用户身份是否登陆的基类BaseController /// <summary> /// 所有需要进行登录控制的控制器基类 /// </summary> public class BaseController : Controller { /// <summary> /// 当前登录的用户属性 /// </summary> public UserInfo CurrentUserInfo { get;
欢醉
2018/01/22
7840
nodejs 下运行 typescript的最佳方式是什么?
在 Node.js 中运行 TypeScript 的最佳方式是使用 TypeScript 编译器(tsc)将 TypeScript 代码编译为 JavaScript,然后在 Node.js 环境中运行生成的 JavaScript 代码。以下是一种常见的做法:
王小婷
2023/09/14
1.6K0
点击加载更多

相似问题

Android:在活动之间共享代码的最佳方式?

22

在活动之间共享数据的最佳方式是什么?

140

在不同的JUnit测试类之间共享数据的最佳方式是什么

20

在大量类之间共享变量的最佳方式是什么?

52

在不同项目之间共享配置的最佳方式是什么?

310
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文