接口隔离原则

This commit is contained in:
2018-09-22 11:46:21 +08:00
parent b49260ae47
commit 78f405dbb4
8 changed files with 128 additions and 0 deletions

View File

@@ -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() {
}
}

View File

@@ -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() {
}
}

View File

@@ -0,0 +1,11 @@
package top.fjy8018.designpattern.principle.interfacesegregation.after;
/**
* 隔离接口方法,但注意适度,不是越少越好
*
* @author F嘉阳
* @date 2018-09-22 11:42
*/
public interface IEatAction {
void eat();
}

View File

@@ -0,0 +1,9 @@
package top.fjy8018.designpattern.principle.interfacesegregation.after;
/**
* @author F嘉阳
* @date 2018-09-22 11:43
*/
public interface IFlyAction {
void fly();
}

View File

@@ -0,0 +1,9 @@
package top.fjy8018.designpattern.principle.interfacesegregation.after;
/**
* @author F嘉阳
* @date 2018-09-22 11:43
*/
public interface ISwimAction {
void swim();
}

View File

@@ -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() {
// 不需要的接口,但被迫实现
}
}

View File

@@ -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() {
}
}

View File

@@ -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();
}