to
class ClientClass {
//Dependencies
Person person = new Person()
Department department = new Department()
person.doSomething()
department.doSomething()
}
动机
当客户类使用过多的中间人调用委托的方法
一个类是引用的外部开源包,但是不能修改其内部的逻辑
创建一个新的方法在这个类中,并以第一个参数的形式传入一个服务类实例
Date newStart = new Date(previousEnd.getYear(),previousEnd.getMonth(),previousEnd.getDate()+1);
to
Date newStart = nextDay(previousEnd);
private static Date nextDay(Date date){
return new Date(date.getYear(),date.getMonth(),date.getDate()+1);
}
动机
当你使用一个类,这个类你又不能对其进行修改的时候可以采用这样方式
你需要为一个服务类提供一些额外的方法,但是你无法修改这个子类
创建一个新的类,使它包含这些额外的方法。这个扩展的类成为源类的子类或者包装类
class ClientClass(){
Date date = new Date()
nextDate = nextDay(date);
private static Date nextDay(Date date){
return new Date(date.getYear(),date.getMonth(),date.getDate()+1);
}
}
to
class ClientClass() {
MfDate date = new MfDate()
nextDate = nextDate(date)
}
class MfDate() extends Date {
...
private static Date nextDay(Date date){
return new Date(date.getYear(),date.getMonth(),date.getDate()+1);
}
}
动机
当我们使用 16. Introduce Foreign Method 我们需要在这个类中添加额外的方法
你可以直接获取对象,但是这样的话会变得越来越复杂
通过创建setting getting 方法来获取这些字段
private int _low, _high;
boolean includes (int arg) {
return arg >= _low && arg <= _high;
}
to
private int _low, _high;
boolean includes (int arg) {
return arg >= getLow() && arg <= getHigh();
}
int getLow() {return _low;}
int getHigh() {return _high;}
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-89441-11.html
我去看了
买国产手机
还有那故意让老鼠咬破包长蛆的学生