读书人

面临接口

发布时间: 2012-09-02 21:00:34 作者: rapoo

面向接口

1 面向接口编程的思想:如果你是什么什么,那么你就必须能怎么样怎么样。例如:如果你是人,你就必须能吃放。

2 接口多用于制定规则,规定了一个事物必须怎么怎么样。

3 业务方法参数定义使用接口定义,然后依照业务注入不同的实现类

4 什么是面向接口?关键“面向接口”的主语是什么,就是是什么面向接口?答案是业务方法的参数面向接口,就是在考虑业务方法传递参数的时候最好传递用于定义规则的接口。(以上属于个人理解)

?

简单Demo

?

?

?

package com.interfaces;public interface IAnimal {/** * 吃 */public void eat();/** * 所有动物的结局 */public String end ="dead";/** * 返回年龄 * @return */public int getAge();/** * 遗传 * @return */public Object giveBirth();}

?

?

/** *  */package com.interfaces.impl;import com.interfaces.IAnimal;import com.utils.T;/** * @author Administrator * */public class Dog implements IAnimal {private String name;private String ownerName ;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getOwnerName() {return ownerName;}public void setOwnerName(String ownerName) {this.ownerName = ownerName;}/* (non-Javadoc) * @see com.interfaces.IAnimal#eat() */@Overridepublic void eat() {T.out("我是小狗 我喜欢吃骨头");}/* (non-Javadoc) * @see com.interfaces.IAnimal#getAge() */@Overridepublic int getAge() {T.out("我的结局是:"+this.end);return 3;}/* (non-Javadoc) * @see com.interfaces.IAnimal#giveBirth() */@Overridepublic Object giveBirth() {Dog dog = new Dog();dog.setName("tom狗");dog.setOwnerName("王伯伯");return dog;}}

?

?

/** *  */package com.interfaces.impl;import com.interfaces.IAnimal;import com.utils.T;/** * @author Administrator * */public class Cat implements IAnimal {private String name;private String kind;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getKind() {return kind;}public void setKind(String kind) {this.kind = kind;}/** *  */public Cat() {// TODO Auto-generated constructor stub}/* (non-Javadoc) * @see com.interfaces.IAnimal#eat() */@Overridepublic void eat() {T.out("我是小猫 我喜欢吃鱼");}/* (non-Javadoc) * @see com.interfaces.IAnimal#getAge() */@Overridepublic int getAge() {T.out("我的结局是:"+this.end);return 0;}/* (non-Javadoc) * @see com.interfaces.IAnimal#giveBirth() */@Overridepublic Object giveBirth() {Cat cat = new Cat();cat.setName("jim小猫");cat.setKind("吉利");return cat;}}

?

?

?

package com.test;import com.interfaces.IAnimal;import com.interfaces.impl.Cat;import com.interfaces.impl.Dog;public class Person {/** * 业务方法:人类观察动物 * @param obj * @return */public Object LookAtAniaml(IAnimal obj){obj.eat();obj.getAge();return obj.giveBirth();}/** * @param args */public static void main(String[] args) {//人类观察狗的流程Person p1 = new Person();p1.LookAtAniaml(new Dog());//人类观察猫的流程Person p2 = new Person();p2.LookAtAniaml(new Cat());}}
输出结果:
我是小狗 我喜欢吃骨头我的结局是:dead我是小猫 我喜欢吃鱼我的结局是:dead

读书人网 >其他相关

热点推荐