打字猴:1.700476034e+09
1700476034
1700476035 public class RefinedAbstraction extends Abstraction{
1700476036
1700476037 //覆写构造函数
1700476038
1700476039 public RefinedAbstraction(Implementor_imp){
1700476040
1700476041 super(_imp);
1700476042
1700476043 }
1700476044
1700476045 //修正父类的行为
1700476046
1700476047 @Override
1700476048
1700476049 public void request(){
1700476050
1700476051 /*
1700476052
1700476053 *业务处理……
1700476054
1700476055 */
1700476056
1700476057 super.request();
1700476058
1700476059 super.getImp().doAnything();
1700476060
1700476061 }
1700476062
1700476063 }
1700476064
1700476065 想想看,如果我们的实现化角色有很多的子接口,然后是一堆的子实现。如果在构造函数中不传递一个尽量明确的实现者,代码就很不清晰。我们来看场景类如何模拟,如代码清单29-20所示。
1700476066
1700476067 代码清单29-20 场景类
1700476068
1700476069 public class Client{
1700476070
1700476071 public static void main(String[]args){
1700476072
1700476073 //定义一个实现化角色
1700476074
1700476075 Implementor imp=new ConcreteImplementor1();
1700476076
1700476077 //定义一个抽象化角色
1700476078
1700476079 Abstraction abs=new RefinedAbstraction(imp);
1700476080
1700476081 //执行行文
1700476082
1700476083 abs.request();
[ 上一页 ]  [ :1.700476034e+09 ]  [ 下一页 ]