1、单一原则:
介绍:单一职责原则规定一个类应该有且仅有一个引起它变化的原因即一个类应该只负责一项职责或者通过方法级别遵守单一原则减少代码量,否则类应该被拆分
实例:
package com.zdc.danyi.two;
public class People {
public void white(String red){
System.out.println("这是"+red+"人");
}
public void black(String red){
System.out.println("这是"+red+"人");
}
public void yellow(String red){
System.out.println("这是"+red+"人");
}
}
package com.zdc.danyi.two;
public class Danyitest {
public static void main(String[] args) {
People people = new People();
people.black("black");
people.white("white");
people.yellow("yellow");
}
}
2、接口隔离原则
介绍:要为各个类建立它们需要的专用接口,而不要试图去建立一个很庞大的接口供所有依赖它的类去调用;即客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口上
示例:
package com.zdc.jiekougeli;
public interface A {
void inter1();
void inter4();
}
###########################################################################
public interface B {
void inter2();
void inter3();
}
###############################################################################
package com.zdc.jiekougeli;
public class C implements A{
@Override
public void inter1() {
System.out.println("C.........inter1...........");
}
@Override
public void inter4() {
System.out.println("C.................inter4............");
}
}
##############################################################################
package com.zdc.jiekougeli;
public class D implements B{
@Override
public void inter2() {
System.out.println("D.............inter2.........");
}
@Override
public void inter3() {
System.out.println("D...................inter3...........");
}
}
#######################################################################
package com.zdc.jiekougeli;
public class E {
public void method(A a){
a.inter1();
a.inter4();
}
public void method2(B b){
b.inter2();
b.inter3();
}
}
##############################################################
package com.zdc.jiekougeli;
public class JiekouTest {
public static void main(String[] args) {
A a = new C();
B b = new D();
E e = new E();
e.method(a);
e.method2(b);
}
}
3、依赖倒换原则
介绍:高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象;使用接口或者抽象类的目的是制定好规范,而不涉及具体的操作,把展示细节的任务交给他们的实现类去完成;
示例:
package com.zdc.yilaidaozhi;
/**
* 顾客
* @author lenovo
*
*/
public class Customer {
public void shopping(Shop shop){
System.out.println(shop.sell());
}
}
#############################################
package com.zdc.yilaidaozhi;
//商店
public interface Shop {
public String sell();//卖
}
###################################
package com.zdc.yilaidaozhi;
/**
* 梨园商店
* @author lenovo
*
*/
public class LinYuanShop implements Shop{
@Override
public String sell() {
// TODO Auto-generated method stub
return "凌源商店商品...................";
}
}
########################################
package com.zdc.yilaidaozhi;
/**
* 韶关商店
* @author lenovo
*
*/
public class ShaoguanShop implements Shop{
@Override
public String sell() {
// TODO Auto-generated method stub
return "韶关商品。。。。。。。。。";
}
}
#################################################
package com.zdc.yilaidaozhi;
public class YilaiTest {
public static void main(String[] args) {
Shop shop1 = new ShaoguanShop();
Shop shop2 = new LinYuanShop();
Customer cus = new Customer();
cus.shopping(shop1);
cus.shopping(shop2);
}
}