avatar
s*5
1
一个从仓库理由不同的容器
有方形的和圆柱形的----方的不能转动, 圆的可以转动
材料可以是纸箱子或者塑料箱子 ---纸箱子承重10磅,塑料箱子承重20磅
怎么设计class来实现两个方法:
isMovable()
isOverWeight()
形状和材料是应该作为attribute 和是分别设计inherited class? 为什么?
多谢!
avatar
d*i
2
典型的strategy design pattern. google 一下有很多范例和解释
avatar
s*5
3
多谢,可是如果我有一个container, 然后square 和 cylinder 继承它并分别实现可不
可以转动的方法。然后两种形状有分别有两个子类,每个分别实现能不能承重,这样承
重的方法就要实现四次,会重复,是不是不好?要不要用诸如abstract factory 之类
的pattern?

【在 d*******i 的大作中提到】
: 典型的strategy design pattern. google 一下有很多范例和解释
avatar
r*g
4
我觉得是这样的,比如,需要添加一个承重15的,你就需要在square和cylinder类里分
别再添加子类,如果有N个形状,维护就很麻烦了。
design pattern rule: favor composition than inheritance.

【在 s******5 的大作中提到】
: 多谢,可是如果我有一个container, 然后square 和 cylinder 继承它并分别实现可不
: 可以转动的方法。然后两种形状有分别有两个子类,每个分别实现能不能承重,这样承
: 重的方法就要实现四次,会重复,是不是不好?要不要用诸如abstract factory 之类
: 的pattern?

avatar
m*d
5
我感觉和strategy pattern无关。那个是behavioral pattern。这个感觉还是在问
creational pattern。isMovable()和overWeight()也只有唯一的一种判断方法。

【在 d*******i 的大作中提到】
: 典型的strategy design pattern. google 一下有很多范例和解释
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。