在对象之间搬移特性

如果一个函数或者字段与另一个类交往更密切,可以移动字段或函数

  • 依赖情况判断是否要在原类增加委托函函数,如果源类也在调用这个函数,引入一个对象比委托更好。

字段迁移

  • 1.封装字段,数据隐藏,讲数据和行为分开,对于字段不应该生明为public
  • 封装字段的好处,除了第一点,还有第二点便于子类覆盖父类get函数进行新的计算
class fathetpublic Integer getNum(){
return mums;class son{
public Integer getNum(){
return Math.min(num,1);}

第三点get适用于懒加载,在使用该对象的时候才实例化

  • 搬移字段时,你以为是引入目标类对象,替换源类中的字段,比如a变为,A. a大错特错,如果是这样刚才在上面讲我们要封装函数不是没意义了~所以还要在源类中使用get A()函数 但是里面返回A. get a()。这样看起来好像加重了工作量,但其实支持可扩展,永远不要直接引用对象.属性来获取属性。

提炼类

提炼类涉及几点
新提炼出来的类,想公开么,毕竟是从A中提炼出来的B 你希望以后是A. B这样调用 还是直接公开B 使用B的途径 以及是否可以被别人修改

将类内联

一个类调用另一个类的函数,最要紧的就是隐藏委托关系,封装非常重要,

class A{
public Integer get back()return B.get back()
}

别人不知道里面还调用了B 被封装隐藏了
天天使用中间层 天天使用代理类 让我们隐藏再隐藏 get再get

本地扩展

想要为一个不可修改的类,增加功能或者修改功能,比如Date类
那就在外形成一个本地扩展类,utils,有两种方式封装Date类 ,1.子类继承或者2.实例化维护Date类在内部的包装类
第2个方式的包装类,永远不要忘记全部封装. 上面一直在提到的,内部维护一个对象,想要使用内部维护对象的属性,必须再封装一层get

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值