首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >一种多级抽象软件的设计

一种多级抽象软件的设计
EN

Stack Overflow用户
提问于 2012-12-28 14:58:54
回答 1查看 115关注 0票数 0

我现在正在设计一个软件,它有几个层次的抽象。这可能是我开始设计的最复杂的代码片段,而且它需要易于升级,所以我想在开始编写任何代码之前确保自己走在正确的轨道上。

从本质上讲,将有3个主要级别的类。这两个类需要相互交谈。

第一个是输入源数据。这些类的主要目标是从两个不同的源获取数据,并将其转换为公共接口,以便在程序的其余部分中使用。

第二组将是外部库的适配器。该库已定期更新,我没有理由怀疑它不会在这些年中继续更新。最有可能的是,每次升级都将与上一次非常相似,但可能会有一些小的变化来支持新的库版本。这一层将负责获取输入,并对它们进行格式化以供输出类使用。

最后一个类是输出。我不认为这需要多个版本,但至少需要指定两个不同的输出目录。我想最简单的做法就是在创建输出类时传入一个输出目录,这是唯一需要的抽象级别。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-28 14:58:54

按如下方式设置代码,本质上遵循bridge pattern,但具有多个抽象层。

输入类将是抽象类。目前获取输出的两种不同方法是两个不同的具体类,如果需要,可以添加更多的具体类。

包装器类将是一个factory pattern。大多数代码在不同的实现之间应该是通用的,所以这应该可以很好地处理细微的差异。

输出类将作为implementor类的一部分包含在内。没有真正需要的模式,因为这个类只需要一个版本。而且,实现者很可能是一个单例。

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

https://stackoverflow.com/questions/14071402

复制
相关文章
透过文学经典理解软件设计的抽象思想
博尔赫斯(Jorge Luis Borges)有一篇奇文,曰《博闻强记的富内斯》,以纪实手法杜撰了一个具有非凡记忆能力的传奇人物富内斯。博尔赫斯自云:“(《博闻强记的富内斯》)是长夜失眠的隐喻。”博尔赫斯大约是文学大师中最擅长使用隐喻的人了。他在诺顿讲座的演讲中,专门做了一次题为“隐喻”的演讲。极限编程的创始人Kent Beck非常推崇“隐喻”,并将其作为Spike阶段理解架构的重要手段,也是XP敏捷实践之一。
张逸
2018/07/27
3740
JAVA设计模式3:抽象工厂模式,这是一种创建型设计模式
本文讲解了 Java 设计模式中的抽象工厂模式,并给出了样例代码,抽象工厂模式是一种创建型设计模式,它提供了一种创建一系列相关或相互依赖对象的接口,而无需指定其具体类。
Designer 小郑
2023/09/03
3100
JAVA设计模式3:抽象工厂模式,这是一种创建型设计模式
软件架构设计的核心:抽象与模型、“战略编程”
在任何程序(可以向外延伸到其他很多领域)的生命周期中,复杂性都会不可避免地增加。 程序越大,工作的人越多,管理复杂性就越困难,程序员在修改系统时将所有相关因素牢记在心中变得越来越难;这会减慢开发速度并导致错误,从而进一步延缓开发速度并增加成本。
一个会写诗的程序员
2022/09/07
6850
软件架构设计的核心:抽象与模型、“战略编程”
【Css】设计多级菜单 代码分享
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="Style.css"> </head> <body> <ul id="nav"> <li class="menu2" onmouseover="this.className='menu1'" onmouseout="this.className='men
用户7718188
2021/11/01
1.7K0
认识抽象的陷阱-过度设计
原文链接:https://mp.weixin.qq.com/s/o-P9EUMPbAZlTwbykBioPQ
月牙寂道长
2021/12/08
3940
【设计模式】抽象工厂
抽象工厂模式创建的是对象家族,也就是很多对象而不是一个对象,并且这些对象是相关的,也就是说必须一起创建出来。而工厂方法模式只是用于创建一个对象,这和抽象工厂模式有很大不同。
瑞新
2020/07/07
2690
【设计模式】抽象工厂
设计模式--抽象工厂
抽象工厂(Abstract Factory)是创建型设计模式之一,它提供了一种创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。抽象工厂模式强调一系列相关的对象的创建,这些对象是属于同一产品族而不同等级结构的。
软件架构师Michael
2023/06/14
2760
设计模式-抽象工厂
抽象工厂(AbstractFactory)模式的定义:是一种为访问类提供一个创建一组相关或相互依赖对象的接口,且访问类无须指定所要产品的具体类就能得到同族的不同等级的产品的模式结构 抽象工厂模式是工厂方法模式的升级版本,工厂方法模式只生产一个等级的产品,而抽象工厂模式可生产多个等级的产品。 1.应用场景 当需要创建的对象是一系列相互关联或相互依赖的产品族时,如电器工厂中的电视机、洗衣机、空调等。 系统中有多个产品族,但每次只使用其中的某一族产品。如有人只喜欢穿某一个品牌的衣服和鞋。 系统中提
cwl_java
2019/10/26
1790
设计模式:抽象工厂
用户1172465
2018/01/08
6780
《API加速优化方案:多级缓存设计》
这事情还得从两天前说起...话说迭代上了个接口,该接口横跨多个应用服务,链路如下图所示:
后台技术汇
2023/09/08
3480
《API加速优化方案:多级缓存设计》
实现多级缓存的架构设计方案
TMC,即“透明多级缓存(Transparent Multilevel Cache)”,是有赞 PaaS 团队给公司内应用提供的整体缓存解决方案。
肉眼品世界
2021/12/01
5870
实现多级缓存的架构设计方案
Fail-fast | 一种可靠的软件设计策略
系统不应该失败,应用程序不应该崩溃,网络连接不应该超时....这就是我们都想要的。但是,有时它会失败并崩溃,我们都在努力防止这种情况发生。有很多方法可以防止软件失败:
用户5166556
2023/03/18
4010
Fail-fast | 一种可靠的软件设计策略
分布式多级缓存SDK设计的思考
之前实习期间编写过一个简单的多级缓存SDK,后面了解到一些其他的开源产品,如J2Cache,京东的JdHotKey,有赞的多级缓存SDK实现,所以本文想来总结一下我对多级缓存SDK设计的考量和开发心得。
大忽悠爱学习
2023/10/11
9521
分布式多级缓存SDK设计的思考
设计模式~抽象工厂模式
通过抽象工厂模式,可以处理具有相同或相似等级结构的多个产品族中的产品对象的创建问题。
Vincent-yuan
2020/07/31
3170
设计模式~抽象工厂模式
设计模式:抽象工厂模式的应用
通过这种方式,我们可以将不同类型的系统的创建和登录过程抽象出来,使得代码更加灵活和可扩展。例如,如果我们要添加对新的系统的支持,我们只需要添加一个新的系统类型和相应的工厂即可,不需要修改现有的代码。
运维开发王义杰
2023/08/10
1670
设计模式:抽象工厂模式的应用
设计模式---抽象工厂模式
传统是new创建对象的方式有着硬编码的问题。当我们需要把所有LinuxXXX对象改为UnixXXX对象时,就必须在项目中检索所有的LinuxXXX修改为UnixXXX。这无疑增加了大量的无意义的工作。
技术文章精选
2022/11/08
3100
串的抽象类型数据的设计
线性表:更关注单个元素的操作,如查找一个元素,插入或删除一个元素。串:更多是查找子串位置、得到指定位置子串、替换子串等操作。
用户7737280
2021/11/10
3900
设计模式----抽象工厂模式
上一篇----工厂方法模式 抽象工厂模式: 提供一个接口,用来创建相关或依赖对象的家族,而不需要明确指定具体类。 抽象工厂模式是工厂方法模式的升级版本。如果我们要实现的系统有N个产品族,每个产品族有M种产品,那么就可以使用抽象工厂模式。抽象工厂模式的结构可以分为: 抽象产品类/接口:定义每个产品族的共性特点,有多少个产品族就要定义多少个抽象产品类/接口。 产品实现类:每个具体产品肯定属于某个产品族,它要继承/实现相应的抽象产品类/接口。 抽象工厂类/接口:声明每个产品族的创建方法,有N个产品族,在抽象工厂类
SuperHeroes
2018/05/30
4600
【设计模式】抽象工厂模式
前面介绍的 工厂模式 中考虑的是一类产品的生产,如畜牧场只养动物、电视机厂只生产电视机、计算机软件学院只培养计算机软件专业的学生等。
Li_XiaoJin
2022/06/10
2570
【设计模式】抽象工厂模式
PHP设计模式——抽象方法
Dragon公司的业务受到轰炸,而CEO希望特许所有海外分支机构的专营权。他首先要注意的问题是如何确保产品质量。他们不希望特许经营者削减成本和使用低质量的组件。低质量的玩具肯定会破坏Dragon品牌的声誉。因此,CEO希望将业务特许经营,但他们仍然希望每个地方都有工厂来提供组件。开发人员聚集起来,开始集思广益。玩具使用三种类型的组件。发动机,车轮和动叶片。例如,一辆玩具车需要一个发动机和四个轮,而玩具直升机则需要一个动叶片和一个发动机。
Lemon黄
2019/11/06
4030

相似问题

多级抽象类

24

多级队列设计

10

UML软件设计(特别是抽象类)

36

这是一种软件设计模式吗?

24

设计多级列表视图

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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