Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >哪种设计模式最适合这个问题?

哪种设计模式最适合这个问题?
EN

Software Engineering用户
提问于 2013-12-23 13:50:51
回答 1查看 347关注 0票数 1

我有两个对象,一个是用户对象,另一个是内容对象。用户对象具有'reads_articles‘或’read_book‘这样的属性。Content对象具有'is_article‘或'is_book’这样的属性。如果这两个属性匹配(即用户reads_articles和Content is_article),那么用户可以看到内容。基本上,我正在寻找最好的解决方案,无需使用switch()语句来解决这个问题。

我也在想,也许我让这件事变得太困难了,或者一个设计模式在这里太费劲了。初步研究表明,策略模式可能是最合适的,但我很难将这个问题建模到该模式中。我不想硬编码测试-我真的想出一个通用的解决方案,检查两个类的属性,并确定该用户是否可以查看内容。

澄清:我的最终目标是一个算法,它将检查用户的属性和内容的属性,并查看它们是否匹配。基本上,我想看看这两个对象是否具有匹配的属性(没有将属性本身硬编码到算法中)并执行一些操作。

不知道我想要的是不是白日梦,所以我想我会问。谢谢你的帮助!

EN

回答 1

Software Engineering用户

发布于 2013-12-23 13:59:31

您可以使用在……里面_数组检查一个项是否是一个集合的成员。

因此,例如,如果用户阅读文章和书籍,用户对象的“读取这些东西”数组将包含‘条文’和‘图书’(或它们的编码数字等效),您可以在user对象上有一个名为ReadsContent()的方法,该方法接受一个内容类型作为参数,并根据该内容类型是否为in_array返回true或false。

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

https://softwareengineering.stackexchange.com/questions/222226

复制
相关文章
python中星号的意义(**字典,*列表或元组)
传递实参和定义形参(所谓实参就是调用函数时传入的参数,形参则是定义函数是定义的参数)的时候,你还可以使用两个特殊的语法:*、** 。 调用函数时使用* ,** test(*args)中 * 的作用:其实就是把序列 args 中的每个元素,当作位置参数传进去。比如上面这个代码,如果 args 等于 (1,2,3) ,那么这个代码就等价于 test(1, 2, 3) 。 test(**kwargs)中** 的作用:则是把字典 kwargs 变成关键字参数传递。比如上面这个代码,如果 kwargs 等于 {
用户1214487
2018/01/24
3.7K0
Python中的字典遍历
备忘一下python中的字典如何遍历,没有什么太多技术含量.仅供作为初学者的我参考.
技术小黑屋
2018/09/04
2.7K0
Python中如何遍历字典
今天在写一个判断列表中的元素是否与字典中的key值相等的时候,需要用到字典的遍历,经过查阅资料,知道怎么遍历字典的key值;
bear_fish
2018/09/20
1.6K0
Python中如何遍历字典
python中列表排序,字典排序,列表中的字典排序
key= lambda dict1:dict1[0] #dict1[0]表示按键,dict1[1]表示按值。
用户8346838
2021/03/10
9.1K0
Python - 从字典列表中删除字典
字典是python的一个非常常用的功能,用于根据用户需要在其中存储数据。另一个典型的过程涉及编辑或操作此数据。要成为一名高效且快速的程序员,您必须弄清楚如何从字典列表中删除字典。有许多技术可以从词典列表中删除字典,本文将介绍这些技术。
很酷的站长
2023/08/11
2650
Python - 从字典列表中删除字典
Python中的循环:遍历列表、元组、字典和字符串
想想现实生活中的情况。你是一位在森林里测量树木的野外生物学家。你选一棵树,测量它的直径和高度,把它们写在你的笔记本上,估计它的总体积。接下来,你再选一棵树,测量它的直径和高度,把它们写在你的笔记本上,估计它的总体积。然后,你再选一棵树,测量它的直径和高度,把它们写在你的笔记本上,估计它的总体积。
deephub
2021/04/16
12.1K0
在Python中,不用while和for循环遍历列表
s1=s.encode(encoding='utf-8').decode('unicode_escape')
用户2337871
2019/07/19
5.5K0
Python: 遍历字典
遍历字典 d = {'x': 1, 'y': 2, 'z': 3} 遍历keys for key in d: print key, y x z for key in d.iterkeys(): # d.iterkeys(): an iterator over the keys of d print key, y x z for key in d.keys(): # d.keys() -> ['y', 'x', 'z'] print key, y x z 遍历value
用户2183996
2018/06/28
1.1K0
Python遍历字典
前面我们简单介绍了Python字典和Python获取字典值。今天我们来聊聊如何遍历python字典。我们还是以car为例子。下面简单介绍三种方法来遍历字典。
生信交流平台
2020/08/06
7240
python中循环遍历for怎么用_python遍历字典的值
Python 会自动将dict_1视为字典,并允许你迭代其key键。然后,我们就可以使用索引运算符,来获取每个value值。
全栈程序员站长
2022/09/22
6K0
python中循环遍历for怎么用_python遍历字典的值
Python - 删除列表中的重复字典
Python 是一个非常广泛使用的平台,用于 Web 开发、数据科学、机器学习以及自动化执行不同的过程。我们可以将数据存储在python中,以不同的数据类型,例如列表,字典,数据集。python字典中的数据和信息可以根据我们的选择进行编辑和更改
很酷的站长
2023/08/11
3651
Python - 删除列表中的重复字典
python3-列表中存储字典
# Auther: Aaron Fan #示例1: #定义几个字典 alien_0 = {"color":"green", "points":5} alien_1 = {"color":"yellow", "points":10} alien_2 = {"color":"red", "points":15} #把字典存入到列表aliens中 aliens = [alien_0, alien_1, alien_2] #遍历这个列表 for alien in aliens:    print(alien
py3study
2020/01/06
1.4K0
python3-字典中存储列表
# Auther: Aaron Fan #示例1: #存储所点披萨的信息 pizza = {    '外皮':'厚的',    '配料列表':['香菇', '奶酪'], } #概述所点的比萨 print('您点了一道"%s-外皮"的比萨信息: ' % pizza['外皮']) for 配料 in pizza['配料列表']:    print("\t%s" % 配料) #示例2: 最喜欢的语言 = {    '张三':['python','ruby'],    '李四':['c'],    
py3study
2020/01/07
1.8K0
python实用技巧:在列表,字典,集合中快速筛选数据
python中,要对列表、字典、集合进行数据筛选,最简单的方式就是用遍历,逐一对比,将符合条件的元素保存。这种方式虽然简单,但不够简洁优雅,以下用实例说明其他实现方式。 本文示例代码均用python
章鱼喵
2018/06/27
5.7K0
python列表、元组、字典
列表是由一序列特定顺序排列的元素组成的。可以把字符串,数字,字典等都可以任何东西加入到列表中,列表中的元素之间没有任何关系。列表也是自带下标的,默认也还是从0开始。列表常用方括号表示,即:[],元素用逗号隔开。
py3study
2020/01/15
1.2K0
Python中的列表、元祖、字典的区别
定义 方法 列表 可以包含不同类型的对象,可以增减元素,可以跟其他的列表结合或者把一个列表拆分,用[]来定义的eg:aList=[123,'abc',4.56,['inner','list'],7-9j] 1.list(str):将str转换成list类型,str可以使字符串也可以是元组类型2.aList.append('test'):追加元素到列表中去3.del aList[1]:删除列表中下标为1的元素del aList:删除整个列表4.cmp(list1,list2):比较两个列表的大小5.len(
py3study
2020/01/09
2.8K0
Go 语言入门系列:列表与字典及其遍历
前面的文章主要介绍了 Go 容器的数组和切片的基本概念以及使用。本文将会介绍列表与字典在 Go 语言中相关的使用,以及几种常用容易的遍历及其使用。。
aoho求索
2021/08/06
3.4K0
python 字典、列表、json转换
#!/usr/bin/python3   import json      #python字典类型转换为json对象   data = {       'id' : 1,       'name' : 'test1',       'age' : '1'   }   data2 = [{       'id' : 1,       'name' : 'test1',       'age' : '1'   },{       'id' : 2,       'name' : 'test2',       '
一朵灼灼华
2022/08/05
1.4K0
python之列表、元组、字典
3 深拷贝和浅拷贝 1 浅拷贝: 当列表中存在有个列表时,其修改这个列表中列表的某一个元素时,其他被拷贝的列表中的对应元素也将被拷贝,其在拷贝这个列表中的列表时,拷贝的是这个内嵌列表的内存位置。
py3study
2020/01/14
2.8K0
点击加载更多

相似问题

遍历python中的字典列表

21

在python中遍历字典内的列表

665

如何遍历python字典列表

21

Python -遍历列表字典

21

在列表中遍历字典

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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