接口隔离原则
This commit is contained in:
@@ -0,0 +1,19 @@
|
|||||||
|
package top.fjy8018.designpattern.principle.interfacesegregation.after;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 实现类可以实现需要的接口
|
||||||
|
*
|
||||||
|
* @author F嘉阳
|
||||||
|
* @date 2018-09-22 11:43
|
||||||
|
*/
|
||||||
|
public class Bird implements IFlyAction, IEatAction {
|
||||||
|
@Override
|
||||||
|
public void eat() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void fly() {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
package top.fjy8018.designpattern.principle.interfacesegregation.after;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 接口隔离注重接口方法之间的关系
|
||||||
|
* 单一职责关心类、方法、接口承担的职责,即一个接口只要职责单一就不关系方法之间的关系
|
||||||
|
*
|
||||||
|
* @author F嘉阳
|
||||||
|
* @date 2018-09-22 11:44
|
||||||
|
*/
|
||||||
|
public class Dog implements IEatAction, ISwimAction {
|
||||||
|
@Override
|
||||||
|
public void eat() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void swim() {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package top.fjy8018.designpattern.principle.interfacesegregation.after;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 隔离接口方法,但注意适度,不是越少越好
|
||||||
|
*
|
||||||
|
* @author F嘉阳
|
||||||
|
* @date 2018-09-22 11:42
|
||||||
|
*/
|
||||||
|
public interface IEatAction {
|
||||||
|
void eat();
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package top.fjy8018.designpattern.principle.interfacesegregation.after;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author F嘉阳
|
||||||
|
* @date 2018-09-22 11:43
|
||||||
|
*/
|
||||||
|
public interface IFlyAction {
|
||||||
|
void fly();
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package top.fjy8018.designpattern.principle.interfacesegregation.after;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author F嘉阳
|
||||||
|
* @date 2018-09-22 11:43
|
||||||
|
*/
|
||||||
|
public interface ISwimAction {
|
||||||
|
void swim();
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
package top.fjy8018.designpattern.principle.interfacesegregation.before;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author F嘉阳
|
||||||
|
* @date 2018-09-22 11:41
|
||||||
|
*/
|
||||||
|
public class Bird implements IAnimalAction {
|
||||||
|
@Override
|
||||||
|
public void eat() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void fly() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void swim() {
|
||||||
|
// 不需要的接口,但被迫实现
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
package top.fjy8018.designpattern.principle.interfacesegregation.before;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author F嘉阳
|
||||||
|
* @date 2018-09-22 11:44
|
||||||
|
*/
|
||||||
|
public class Dog implements IAnimalAction {
|
||||||
|
@Override
|
||||||
|
public void eat() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void fly() {
|
||||||
|
// 不需要的接口,但被迫实现
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void swim() {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package top.fjy8018.designpattern.principle.interfacesegregation.before;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 接口隔离原则:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上
|
||||||
|
* 旧版:一个接口承担过多功能,使得实现类对有些不需要的方法也必须实现
|
||||||
|
*
|
||||||
|
* @author F嘉阳
|
||||||
|
* @date 2018-09-22 11:40
|
||||||
|
*/
|
||||||
|
public interface IAnimalAction {
|
||||||
|
void eat();
|
||||||
|
|
||||||
|
void fly();
|
||||||
|
|
||||||
|
void swim();
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user