草庐IT

c++ - 实现良好 OO 设计的秘诀

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题吗?更新问题,以便editingthispost提供事实和引用来回答它.关闭4年前。Improvethisquestion我是一名C++程序员,我期待学习和掌握OO设计。我做了很多搜索,众所周知,有大量关于如何实现良好OO的Material、书籍、教程等设计。当然,我明白一个好的设计只能靠大量的经验、个人才能、才华,甚至是靠运气(夸张!)。但请确保这一切都是从一个坚实的开始和建立一些强大的基础开始的。有人可以通过指出正确的Material来帮助我,说明如何从识别对象、类等阶段开始学习设计的探索到使用设计模式的

c++ - 模板多态可以代替OO多态吗?

我正在努力将模板编程(以及在未来的某个时间点,模板元编程)应用到现实世界的场景中。我发现的一个问题是C++模板和多态性并不总是以我想要的方式一起使用。我的问题是我尝试应用模板编程的方式是否不正确(我应该使用普通的旧OOP),或者我是否仍然停留在OOP思维模式中。在这种特殊情况下,我正在尝试使用策略模式来解决问题。我一直遇到这样的问题,我最终想要一些模板似乎不支持的多态行为。使用组合的OOP代码:classInterpolator{public:Interpolator(ICacheStrategy*constc,IDataSource*constd);ValueGetValue(con

c++ - 模板多态可以代替OO多态吗?

我正在努力将模板编程(以及在未来的某个时间点,模板元编程)应用到现实世界的场景中。我发现的一个问题是C++模板和多态性并不总是以我想要的方式一起使用。我的问题是我尝试应用模板编程的方式是否不正确(我应该使用普通的旧OOP),或者我是否仍然停留在OOP思维模式中。在这种特殊情况下,我正在尝试使用策略模式来解决问题。我一直遇到这样的问题,我最终想要一些模板似乎不支持的多态行为。使用组合的OOP代码:classInterpolator{public:Interpolator(ICacheStrategy*constc,IDataSource*constd);ValueGetValue(con

python - 在 Python 中结合棉花糖模式定义和 OO 的最佳实践是什么?

关闭。这个问题是opinion-based.它目前不接受答案。想改善这个问题吗?更新问题,以便可以通过editingthispost用事实和引文回答问题.3年前关闭。Improvethisquestion假设在marshmallow中定义了一个简单的模式classAddressSchema(Schema):street=fields.String(required=True)city=fields.String(required=True)country=fields.String(default='USA')classPersonSchema(Schema):name=fields.

python - 在 Python 中结合棉花糖模式定义和 OO 的最佳实践是什么?

关闭。这个问题是opinion-based.它目前不接受答案。想改善这个问题吗?更新问题,以便可以通过editingthispost用事实和引文回答问题.3年前关闭。Improvethisquestion假设在marshmallow中定义了一个简单的模式classAddressSchema(Schema):street=fields.String(required=True)city=fields.String(required=True)country=fields.String(default='USA')classPersonSchema(Schema):name=fields.

java - OO设计和循环依赖

我目前在设计类(class)时遇到循环依赖问题。自从我读到AnemicDomainModel(我一直在做的事情),我真的一直在努力摆脱创建只是“getter和setter桶”的领域对象,并回到我的OO根源。但是,下面的问题是我经常遇到的问题,我不知道应该如何解决。假设我们有一个Team类,它有很多Players。这是什么运动并不重要:)球队可以添加和删除球员,就像球员可以离开球队并加入另一个球队一样。所以我们有球队,其中有一个球员名单:publicclassTeam{privateListplayers;//snip.publicvoidremovePlayer(Playerplaye

java - OO设计和循环依赖

我目前在设计类(class)时遇到循环依赖问题。自从我读到AnemicDomainModel(我一直在做的事情),我真的一直在努力摆脱创建只是“getter和setter桶”的领域对象,并回到我的OO根源。但是,下面的问题是我经常遇到的问题,我不知道应该如何解决。假设我们有一个Team类,它有很多Players。这是什么运动并不重要:)球队可以添加和删除球员,就像球员可以离开球队并加入另一个球队一样。所以我们有球队,其中有一个球员名单:publicclassTeam{privateListplayers;//snip.publicvoidremovePlayer(Playerplaye

java - OO方式的游戏设计

我正在设计一个使用Java2D和牛顿物理学的简单游戏。目前我的主要“游戏循环”看起来像:do{for(GameEntityentity:entities){entity.update(gameContext);}for(Drawabledrawable:drawables){drawable.draw(graphics2d);}}while(gameRunning);当一个实体被指示更新自身时,它会根据施加在它身上的当前力来调整它的速度和位置。但是,我需要实体表现出其他行为;例如如果“坏人”被玩家射中,则该实体应被摧毁并从游戏世界中移除。我的问题:以面向对象的方式实现这一目标的最佳方法

java - OO方式的游戏设计

我正在设计一个使用Java2D和牛顿物理学的简单游戏。目前我的主要“游戏循环”看起来像:do{for(GameEntityentity:entities){entity.update(gameContext);}for(Drawabledrawable:drawables){drawable.draw(graphics2d);}}while(gameRunning);当一个实体被指示更新自身时,它会根据施加在它身上的当前力来调整它的速度和位置。但是,我需要实体表现出其他行为;例如如果“坏人”被玩家射中,则该实体应被摧毁并从游戏世界中移除。我的问题:以面向对象的方式实现这一目标的最佳方法

c# - Getter 和 Setter 是糟糕的 OO 设计吗?

这个问题在这里已经有了答案:Whyusegettersandsetters/accessors?(37个回答)关闭7年前。GettersandSettersarebad简要阅读上面的文章,我发现getter和setter是糟糕的OO设计,应该避免使用它们,因为它们违背了封装和数据隐藏。既然是这种情况,在创建对象时如何避免它,以及如何在模型对象中考虑到这一点。在需要getter或setter的情况下,可以使用哪些其他替代方法?谢谢。 最佳答案 你错过了重点。那篇文章的有效且重要的一点是:Don'taskfortheinformatio