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
 
怎样可能在不改动模块源代码的状况下去更改它的行为呢?若是不更改一个模块,又怎么可以去改变它的功能呢?-->抽象,能够建立出固定却可以描述一组任意个可能行为的抽象体,该抽象体就是抽象基类,而这一需人一个可能的行为则表现为可能的派生类。模块可能对抽象体进行操做。因为模块依赖于一个固定的抽象体,因此它对于更改能够是封闭的,同时,经过从这个抽象体派生,能够扩展此模块的行为。
相关文章
相关标签/搜索