Java学习----day6——(2)面对对象程序设计总结【题目详解】

1.工厂模式

有点类似于单例模式,就是工厂类去调取所需要的子类对象;要什么就生成什么。

package com.Example.chapter05;
 /**
  * @author Administrator 
  * @date : 2017年3月27日 下午12:21:39
  * @function : 工厂类理解 
*/ 
public class FactoryDesign { 
    public static void main(String[] args) {
        Personk instance=null;
        instance=new Factory().getInstacne("man");  
        instance.say();
    }
}
class Factory{
    public Personk instance=null;
    public Personk getInstacne(String classname){
        if(("man").equals(classname)){
            this.instance=new man();         
        }else if(("woman").equals(classname)){
            this.instance=new woman();
        }
        return this.instance;
    }
}
class Personk{
    public void say(){

    }
}
class man extends Personk{

    @Override
    public void say() {
        // TODO Auto-generated method stub
        System.out.println("男人说话女人不要插嘴");
    }

}
class woman extends Personk{

    @Override
    public void say() {
        // TODO Auto-generated method stub
        System.out.println("女人说话男人不要插嘴");
    }

}

2.代理模式

联想生活中的代理,从球星————>经纪人,客户需要从经纪人拿球星的意见。
package com.Example.chapter05;
 /**
  * @author Administrator 
  * @date : 2017年3月27日 下午4:32:55
  * @function : 代理模式 
*/ 
public class ProxyPattern {
 public static void main(String[] args) {
    Agent agent=new Agent();
    agent.getStart(new Star());
    agent.show();
}
}
interface Perform{
    public abstract void show();
}
class Star implements Perform{
    @Override
    public void show() {
        // TODO Auto-generated method stub
    System.out.println("--------------明星答应签合同---------------"); 
    }
}
class Agent implements Perform{
    private Star star=null;
    public void getStart(Star star){
        this.star=star;
    }
    public void check(){
        System.out.println("--------------正在验证球星意见-----------------");
    }
    @Override
    public void show() {
        // TODO Auto-generated method stub
        this.check();
        this.star.show();

    }
}

3.适配器模式

(接口需要承接的类全部覆写抽象方法,则抽象类也需要实现全部的抽象方法!我觉得是废话!)主要思想:抽象类作为过渡去承接接口,去覆写需要的方法体;
package com.Example.test;
 /**
  * @author Administrator 
  * @date : 2017年3月27日 下午6:32:33
  * @function : 验证接口需要覆写全部抽象方法,则抽象类也需要 
*/ 
public class InterfaceOrExtends {

}
interface InnerDemo{
    public abstract void say();
    public abstract void wanna();
}
abstract class AbstractDemo implements InnerDemo{
    public void say(){};

}
class Admit extends AbstractDemo{

    @Override
    public void wanna() {
        // TODO Auto-generated method stub

    }




}
posted @ 2017-03-26 22:38  理工物联网  阅读(77)  评论(0编辑  收藏  举报