zoukankan      html  css  js  c++  java
  • OCP

    IOC  短信接口伪代码

    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
     
    怎样可能在不改动模块源代码的情况下去更改它的行为呢?如果不更改一个模块,又怎么能够去改变它的功能呢?-->抽象,可以创建出固定却能够描述一组任意个可能行为的抽象体,该抽象体就是抽象基类,而这一需人一个可能的行为则表现为可能的派生类。模块可能对抽象体进行操作。由于模块依赖于一个固定的抽象体,所以它对于更改可以是封闭的,同时,通过从这个抽象体派生,可以扩展此模块的行为。
  • 相关阅读:
    flask路由(2)
    flask(1)
    了解websocket协议
    理解python的queue&deque
    oracle sqlplus中使用spool生成美化的html网页
    Oracle自动生成html格式awr的报告
    oracle data guard备库备份恢复
    【翻译自mos文章】DBA_JOBS 和 DBA_JOBS_RUNNING 不同的结果的解释
    ORA-23421: job number 225 is not a job in the job queue
    ORA-23421: job number 225 is not a job in the job queue
  • 原文地址:https://www.cnblogs.com/sofia/p/3272051.html
Copyright © 2011-2022 走看看