A*******e 发帖数: 2419 | | d******e 发帖数: 2265 | 2 大python根本没有OOD这种脱了裤子放屁的多余模式。又要实现功能又要封装。
直接 keyword para, default para, apply搞定。
【在 A*******e 的大作中提到】 : 如题。
| A*******e 发帖数: 2419 | 3 具体代码是?
【在 d******e 的大作中提到】 : 大python根本没有OOD这种脱了裤子放屁的多余模式。又要实现功能又要封装。 : 直接 keyword para, default para, apply搞定。
| l**********n 发帖数: 8443 | 4 python的performance不行吧?
【在 d******e 的大作中提到】 : 大python根本没有OOD这种脱了裤子放屁的多余模式。又要实现功能又要封装。 : 直接 keyword para, default para, apply搞定。
| g*****g 发帖数: 34805 | 5 It avoids the telescope constructor anti pattern. Limit the number of
constructors you need to maintain. In other words, you can do a JavaBean
style init in a chaining way.
【在 A*******e 的大作中提到】 : 如题。
| d******e 发帖数: 2265 | 6 e.g.,
def verify(response, *, seller_id, item_id = None, campaign_id = None,
status = None, action = 'none', event_id = None, reason = None)
call:
verify(seller_id,
item_id = None,
action = 'none',
event_id = None,
reason = None)
scala现在也有了。
【在 A*******e 的大作中提到】 : 具体代码是?
| z*******3 发帖数: 13709 | 7 所有封装的目的都是一样的
为了协作,只要是oop,就有类似的pattern
除非你告诉我说python没有oo的部分,那这个就是扯蛋了
如果自己乱写的话,什么default para,根本不需要,直接改就是了
【在 d******e 的大作中提到】 : 大python根本没有OOD这种脱了裤子放屁的多余模式。又要实现功能又要封装。 : 直接 keyword para, default para, apply搞定。
| z*******3 发帖数: 13709 | 8
看你怎么定义一次性还是复用
最理想的是products能够组合出不同的东西来
不行也无所谓
【在 A*******e 的大作中提到】 : 如题。
| z*******3 发帖数: 13709 | 9
这跟builder pattern没一点关系
【在 d******e 的大作中提到】 : e.g., : def verify(response, *, seller_id, item_id = None, campaign_id = None, : status = None, action = 'none', event_id = None, reason = None) : call: : verify(seller_id, : item_id = None, : action = 'none', : event_id = None, : reason = None) : scala现在也有了。
| z*******3 发帖数: 13709 | 10 builder pattern自从set/get大面积使用之后
就剩下immutable比较合适了,因为set/get可以直接改掉variable
但是immutable attr.不能这么改,而如果这个时候attri.又比较多的话
你用constructor就很恶心了
从这一点出发说,scala这种oop和fp混杂的语言
反而是用builder pattern比较多的语言
因为fp强调immutable,把build方法搞成1st class func
就可以很自然滴使用出builder pattern |
|