OCP

IOC  短信接口僞代碼ide

Public Class Lawyer
{
    private IInfoSend infoSend;
    public IInfoSend setInfoSend(IInfoSend infoSend)
    {
      this.infoSend=infoSend; 
    }
    public void sendMsg() 
    {
      this.infoSend.sendMsg(this.entity);
    }
}

Public Interface IInfoSend
{
    void sendMsg();
}

public class BJInfoSendImp implement IInfoSend
{
    override  void sendMsg()
    {
      bj....
    }
}

void main()
{
    Lawyer law=new Lawyer();
    BJInfoSendImp infosend=new BJInfoSendImp();
    law.setInfoSend(infosend);
    law.sendMsg();
}
內聚性(Cohesion):一個模塊的組成元素之間的功能相關性。
單一職責原則:一個類應該只有一個發生變化的緣由。
若是應用程序的變化會影響鏈接函數的簽名(signature),那麼這個設計就具備僵化性的臭味。
另外一個方面,若是應用程序的變化方式老是致使這兩個職責同時變化,那麼就沒必要分離他們。
 
開放封閉原則:軟件實體應該是能夠擴展的,可是不能夠修改。(OCP)
1)open for extension
2)closed for modification
 
怎樣可能在不改動模塊源代碼的狀況下去更改它的行爲呢?若是不更改一個模塊,又怎麼可以去改變它的功能呢?-->抽象,能夠建立出固定卻可以描述一組任意個可能行爲的抽象體,該抽象體就是抽象基類,而這一需人一個可能的行爲則表現爲可能的派生類。模塊可能對抽象體進行操做。因爲模塊依賴於一個固定的抽象體,因此它對於更改能夠是封閉的,同時,經過從這個抽象體派生,能夠擴展此模塊的行爲。
相關文章
相關標籤/搜索