![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java重构笔记
文章平均质量分 81
beyondbycyx
这个作者很懒,什么都没留下…
展开
-
1.封装集合
1.让客户端“能够看到该看到的,不该看的一定看不到” 2.遍历元素方法用迭代器,不要返回元素集合,迭代器模式很好的实现了遍历元素的功能,并隔离了修改元素的方法。 eg: //返回元素的集合,实现遍历功能,坏处:用户可以通过集合的add方法修改结合。 public Collection<OrderItem> getOrderItem() { return this原创 2015-08-16 21:38:09 · 558 阅读 · 0 评论 -
重构6-10
6.分解依赖分解依赖:即A类对B类的直接调用变成A类调用C接口,C接口底层调用了B类对象。 总结:使用中间的装饰接口来分解两个类之间的依赖,对类进行装饰,然后使它满足我们所需要的功能。 eg://A类: 直接调用B类对象的方法class AnimalService{ private boolean isHungry; public void feeding() {翻译 2015-08-18 11:03:09 · 342 阅读 · 0 评论 -
重构1-5
1.搬移方法搬移方法:当A类中出现了多次调用某个对象的方法时,则可以将该对象的方法写在A类中.或者某个方法被多个类调用时,此时看哪个类的数据与该方法联系更多,这件该方法移到该类—–称之为代码情节(Feature Envy)。 eg: class BankAccount { private int age; private int credit; public原创 2015-08-17 22:21:20 · 287 阅读 · 0 评论 -
重构21-25
21.去除上帝类去除上帝类:即一个上帝类(万能类)什么事都能做,都由它做,为了遵循面向对象的单一职责原则,应当将其分解成多个功能单一明确的类。 **eg:**CustomerService类里包含了两种功能,一是下单服务,二是注册服务。public class CustomerService { public decimal CalculateOrderDiscount(I翻译 2015-08-18 17:46:27 · 245 阅读 · 0 评论 -
重构11-20
11.提取父类提取父类:即将一个类的基本属性,方法提取出来,封装在一个父类中,减少子类的代码,也可以将父类的代码共享给其他实现类。 eg:public class Dog { public void EatFood() { // eat some food } public void Groom()翻译 2015-08-18 16:29:41 · 283 阅读 · 0 评论 -
重构目录
重构1-5 1.搬移方法:那个类对某个方法多次调用则将该方法移到该类中,注意先搬移字段,再移到方法。 2.搬移字段:子类中常用的字段提升到父类中,父类中不常用的字段降低到子类中。 3.类与类的联系:除了继承外,多用聚合关系,或接口。视联系而定 4.方法重构:较长代码的方法应当分解出多个子方法,并由它调用,注意传入的参数和返回的参数是哪些。 5.策略类使用:原创 2015-08-18 18:00:23 · 509 阅读 · 0 评论