java设计模式的单一原则

 
 

单一职责原则

     假设类1负责两个不同的项目:类2,类3,当不同的客户需求不同时,作为程序员的我们必须对类1当中的功能进行或多或少的修改,这时有可能会造成类2或类3原本正常运行的不能正常运行。

     这时,我们就要遵循单一职责的原则,建立两个类,类4,类5,让类4完成一个功能,类5完成一个功能,使他们两个之间没有关系,即便面对客户的不同需求而改变功能时,只修改一个类,对其他类所执行的功能没有影响,

    当然,单一原则就是一个常识,稍微有点经验的程序员都明白,作为一个常识的原则往往是被刚入门的程序员所忽视的。

   例如:体现单一原则

class Text{

public Anmial(String anmial){

    System.out.println(anmial+"是吃米饭的");  

}  

}

public class Demo{

    public static void main(String args[]){

        Anmial  a = new Anmial();

        a.Anmial("人"); 

        a.Anmial("牛"); 

        a.Anmial("老虎"); 

    

 }

}

   上面的程序运行的结果为:

         人是吃米饭的

         牛是吃米饭的

         老虎是吃米饭的

  当程序运行之后,我们发现不是所有的动物都是吃米饭的,

  当然,当我按照单一原则来改写它,

class Text{

public Anmial(String anmial){

    System.out.println(anmial+"是吃米饭的");  

}  

}
class Text2{ 
public  Anmial2(String Anmial2){
       System.out.println(anmial+"是吃草的");  
}
} 
class Text3{
public  Anmial3(String Anmial3){

       System.out.println(anmial+"是吃肉的");  

}
} 
  

public class Demo{

    public static void main(String args[]){

        Anmial  a = new Anmial();
        Anmial2 a2 = new Anmial2();
        Anmial3 a3 = new Anmial3();
        a.Anmial("人"); 
        a2.Anmial("牛"); 
        a3.Anmial("老虎"); 
 }
}  

这时,程序运行的结果是:
     人是吃米饭的 
     牛是吃草的
     老虎是吃肉的 
它是达到了我们想要的目的,同样也遵循了单一原则,但我们发现,它反而提高了程序的复杂度,
    那我们是不是就不用遵循单一原则了??
    答案是否定的, 
单一原则不仅体现在类上面,也体现在类当中,这就是单一原则在java中的地位,穿透在每一行,每一个能实现一个功能的语句、方法、类当中,当面对客户的不同需求发生改变时,尽可能少的变动代码,这就是单一职责原则,
   所以,上边的程序还有一种修改方法:既
  
 class Text{
public Anmial(String anmial){
    System.out.println(anmial+"是吃米饭的"); 
}  

public  Anmial2(String Anmial2){
       System.out.println(anmial+"是吃草的");  
}

public  Anmial3(String Anmial3){
       System.out.println(anmial+"是吃肉的");  
}

} 
  
public class Demo{
 public static void main(String args[]){
        Anmial  a = new Anmial();
         a.Anmial("人"); 
        a.Anmial2("牛"); 
        a.Anmial3("老虎"); 
 }
}  

程序运行的结果为:
     人是吃米饭的 
     牛是吃草的
     老虎是吃肉的 
这样就达到了我们想要的目的,也遵循了单一职责原则,它体现在类当中的每个方法中,但在一些大的项目中,它就是或少不或多的了。

第一次发文章,写的着实很烂,但求各位兄弟姐妹,给点意见,传授一下经验,谢谢

你可能感兴趣的:(java设计模式的单一原则)