设计模式---设计原则之单一职责

2018-06-26  本文已影响0人  Aspires

单一职责原则,Single Resposibility Principle,简称SRP,单一职责意指:无论设计接口或者是一个类、一个方法,都应该保持职责单一,例如一个接口:

/*
      维护信息接口
*/
Interface  UserBiz{
      public function Create(){
      }
      public function Update(){
      }
      public function Retrieve(){
      }
      public function Delete(){
      }
}
//既然定义了接口的职责是用户行为(增删改查),就不应该用来显示用户信息
                                    1-1

这就是简单的单一职责原则,它的定义是:有且仅有一个原因引起类的变更。

但是在实际项目中,单一原则很难去严格的执行,因为职责的定义很宽泛。例如那个经典的IPone接口(代码1-2),iPhone接口包含了两种职责,数据传输和协议管理。hang()和dail()实现的是协议管理,chat()实现数据传送。在这里dail()的变化会引起接口的变化,那么chat的变化同样会引起接口的变化,数据传送不仅有chat,还有上网的功能,所以只能进行接口拆分,把数据传送和协议管理分开,但是这样一来,接口或者类的多重加载,大大增加了程序的“重量”,人为的增加了程序的复杂性。

Interface Iphone{
    public function Dail(){
    }//电话接通
    public function hang(){
    }//电话挂起
    public function chat(){
    }
}
                                      1-2

总结:使用单一职责原则的优点:

上一篇 下一篇

猜你喜欢

热点阅读