state 学习

state 学习

1:对状态的访问, 直接访问,对内直接访问,对外间接访问

2:公共状态, 所有对象共享的状态,对于部分方法才会使用到的状态最好使用别的方式存储状态,例如参数或者助手
类。 all common state in an object should have the same lifetime.

3:变化的状态集合,不仅对象使用的状态变化,而且状态的数量也变化时,通常使用一个map集合来存储此类的状态。
Use common state whereever possible, Use variable state for the fields in an object that
may or may not be needed depending on usage.

4: 外来状态。 某个特别的对象感兴趣的状态,如果把他放在类中,将会违反对称性,把此类状态和其主人存储在map中。 缺点时对象复制时比较困难。

5:局部变量的类型
a: Collector(收集者), 通常是为了所有的计算而收集信息。收集的结果通常被作为计算结果返回给调用者。
通常命名为result 或者results.
b: Count(计数器), 一个用来收集某些对象的次数的收集者。
c: Explaining. 用来解释复杂表达式的中间结构,利于理解代码。通常时助手类的接入点,减少代码重复。
d: Reuse(复用). 一个表达式的变化随着时间而变化,这时需要一个临时的住所来暂住一下
e: Element(元素) 一个集合中的单个元素,例如迭代器

6:数据域(field)
常见域扮演的角色
a: 助手(Helper),保持对别人的引用,帮助主人和别人通信,当主人的很多行为都涉及到某个别人(当作
参数传递的),可以重构为助手域,通过助手和别人通信。
b: 标帜域(Flag),用来区分对象的行为,可以重构为策略模式
c: 策略域(Strategy), 对象的行为根据策略对象的变化而变化,如果对象的其生命周期内的行为不变化,
只是在同类不同对象间变化时,通过构造函数注入策略对象
d:状态域(state)
f: 组件(Components); 一个具有自主能力的对象

7: 参数(Parameter)
耦合性较小的通信方式,当一个对象和某个对象的交互次数较少时通过参数通信较少,但交互次数较多时
就该把别人招纳为手下了。
常见参数类型
a: 收集参数(Collecting Parameter), 就像个无底麻袋,把他轮流传递给每个人,把他们的money放到袋
子里,最后把他再返回到我这里,看看袋子,就知道其作用了。
b: 可选参数(Optional Parameter), 可有可无,无时认为其默认的, 可变参数可以当成一个集合作为一个
对象传递过去。
c: 参数对象, 太多的对象经常一起出入的话,那就把他们当成一个对象吧!

8:类的全局常量Const (static final)

9: 通过变量的角色来命名(scope, lifetime, role)

10:类型声明

11:初始化
a: eager initialization, 在声明出初始化,在构造函数中初始化
b: Lazy initialization 懒初始化,在真正需要的时候再去初始化。


tips:
variables (scope, lifetime, role, runtime type of variables)
role-suggesting name

从Implementation patterns中学到的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值