发表于: 2017-12-11 14:42:35
1 797
依赖描述是类与类的关系.依赖关系表示一个类依赖与另一个类的定义.
描述了一种"类与类之间"一种"使用与被使用"的关系;简单来说,就是A类中,出现了B类;
里氏替换原则,OCP作为OO的高层原则,主张使用“抽象(Abstraction)”和“多态(Polymorphism)”将设计中的静态结构改为动态结构,维持设计的封闭性。“抽象”是语言提供的功能。“多态”由继承语义实现。
OCP:Open-Closed Principle软件设计中的“开-闭原则”
这个原则最早是由Bertrand Meyer提出,英文的原文是:Software entities should be open for extension,but closed for modification.意思是说,一个软件实体应当对扩展开放,对修改关闭.也就是说,我们在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展,换句话说就是,应当可以在不必修改源代码的情况下改变这个模块的行为.
1.通过扩展已有的软件系统,可以提供新的行为,以满足对软件的新需求,使变化中的软件系统有一定的适应性和灵活性.
2.已有的软件模块,特别是最重要的抽象层模块不能再修改,这就使变化中的软件系统有一定的稳定性和延续性.
mvc的view和controller相当于三层架构的界面层
mvc的model层包含了controller以下的service DAL层.也就是所下面两层都是为了或的model存在的;
https://www.zhihu.com/question/20821697/answer/102234360?utm_medium=social&utm_source=qq
个人理解:以前不太了解什么叫解耦,以为解耦就是解除了两个类之间的关系,但是假如类b用了类a的方法,就算用spring依赖注入之后,类b里还用使用了a实例的方法啊.那这叫什么解耦.今天看了点终于有点理解了.依赖关系有两层理解,一种是类与类实际存在的调用关系另外一种是代码中类之间的import依赖,其实解耦只是解的第二种耦,因为第一种的依赖关系不管到天涯海角都是改变不了的,因为没有类a,类b就实现不了.第二种解耦的话,假如你更换了类b的实现.那么对于程序修改而言,就必须要修改程序代码,而假如使用spring注入的话,我们只需要修改配置文件就可以了.如果再利用多态,继承,则更加方便了.现在只是浅层的理解.遇到一个讲的很好的文章,将简单概念问题上升到哲学问题.
评论