![](https://img-blog.csdnimg.cn/20190927151117521.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
面向对象设计原则
文章平均质量分 73
面向对象设计原则
ChinaDragonDreamer
追梦莫空动!
个人公众号:小龙知识库
展开
-
面向对象设计原则
面向对象设计原则参考文献:开闭原则——面向对象设计原则谈谈面向对象设计(OOD)原则程序员必备的七大面向对象设计原则(一)面向对象设计的六大原则 (绝对详细)面向对象设计原则概述...原创 2020-12-19 10:14:48 · 141 阅读 · 1 评论 -
设计模式---抽象工厂模式
抽象工厂模式一、定义是一种为访问类提供一个创建一组相关或相互依赖对象的接口,且访问类无须指定所要产品的具体类就能得到同族的不同等级的产品的模式结构。抽象工厂模式是工厂方法模式的升级版本,工厂方法模式只生产一个等级的产品,而抽象工厂模式可生产多个等级的产品。使用抽象工厂模式一般要满足以下条件。系统中有多个产品族,每个具体工厂创建同一族但属于不同等级结构的产品。系统一次只可能消费其中某一族产品,即同族的产品一起使用。优点:可以在类的内部对产品族中相关联的多等级产品共同管理,而不必专门引入多原创 2020-12-22 19:56:00 · 313 阅读 · 1 评论 -
设计模式---工厂方法模式
工厂方法模式一、定义在《简单工厂模式》一节我们介绍了简单工厂模式,提到了简单工厂模式违背了开闭原则,而“工厂方法模式”是对简单工厂模式的进一步抽象化,其好处是可以使系统在不修改原来代码的情况下引进新的产品,即满足开闭原则。优点:用户只需要知道具体工厂的名称就可得到所要的产品,无须知道产品的具体创建过程。灵活性增强,对于新产品的创建,只需多写一个相应的工厂类。典型的解耦框架。高层模块只需要知道产品的抽象类,无须关心其他实现类,满足迪米特法则、依赖倒置原则和里氏替换原则。缺点:类的个数容易原创 2020-12-22 11:33:27 · 207 阅读 · 1 评论 -
设计模式---简单工厂模式
简单工厂模式一、定义定义一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中。这满足创建型模式中所要求的“创建与使用相分离”的特点。按实际业务场景划分,工厂模式有 3 种不同的实现方式,分别是简单工厂模式、工厂方法模式和抽象工厂模式。我们把被创建的对象称为“产品”,把创建产品的对象称为“工厂”。如果要创建的产品不多,只要一个工厂类就可以完成,这种模式叫“简单工厂模式”。在简单工厂模式中创建实例的方法通常为静态(static)方法,因此简单工厂模式(Simple Factory原创 2020-12-22 09:53:12 · 172 阅读 · 1 评论 -
面向对象设计原则---合成复用原则
合成复用原则(Composite Reuse Principle,CRP)又叫组合/聚合复用原则(Composition/Aggregate Reuse Principle,CARP)一、定义它要求在软件复用时,要尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。如果要使用继承关系,则必须严格遵循里氏替换原则。合成复用原则同里氏替换原则相辅相成的,两者都是开闭原则的具体实现规范。二、合成复用原则的重要性通常类的复用分为继承复用和合成复用两种,继承复用虽然有简单和易实现的优点,但原创 2020-12-19 23:09:38 · 194 阅读 · 1 评论 -
面向对象设计原则---迪米特法则
迪米特法则(Law of Demeter,LoD)又叫作最少知识原则(Least Knowledge Principle,LKP)一、定义只与你的直接朋友交谈,不跟“陌生人”说话;含义是:如果两个软件实体无须直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发该调用。其目的是降低类之间的耦合度,提高模块的相对独立性。迪米特法则中的“朋友”是指:当前对象本身、当前对象的成员对象、当前对象所创建的对象、当前对象的方法参数等,这些对象同当前对象存在关联、聚合或组合关系,可以直接访问这些对象的方法。原创 2020-12-19 22:59:56 · 175 阅读 · 1 评论 -
面向对象设计原则---接口隔离原则
接口隔离原则(Interface Segregation Principle,ISP)一、定义客户端不应该被迫依赖于它不使用的方法;一个类对另一个类的依赖应该建立在最小的接口上;以上两个定义的含义是:要为各个类建立它们需要的专用接口,而不要试图去建立一个很庞大的接口供所有依赖它的类去调用。接口隔离原则和单一职责都是为了提高类的内聚性、降低它们之间的耦合性,体现了封装的思想,但两者是不同的:单一职责原则注重的是职责,而接口隔离原则注重的是对接口依赖的隔离。单一职责原则主要是约束类,它针对的原创 2020-12-19 16:09:08 · 193 阅读 · 1 评论 -
面向对象设计原则---单一职责原则
单一职责原则(Single Responsibility Principle,SRP)一、定义这里的职责是指类变化的原因,单一职责原则规定一个类应该有且仅有一个引起它变化的原因,否则类应该被拆分。该原则提出对象不应该承担太多职责,如果一个对象承担了太多的职责,至少存在以下两个缺点:一个职责的变化可能会削弱或者抑制这个类实现其他职责的能力;当客户端需要该对象的某一个职责时,不得不将其他不需要的职责全都包含进来,从而造成冗余代码或代码的浪费。二、单一职责原则的优点单一职责原则的核心就是控制类的原创 2020-12-19 15:08:41 · 345 阅读 · 1 评论 -
面向对象设计原则---依赖倒置原则
依赖倒置原则(Dependence Inversion Principle,DIP)一、定义高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象;核心思想是:要面向接口编程,不要面向实现编程;依赖倒置原则是实现开闭原则的重要途径之一,它降低了客户与实现模块之间的耦合。由于在软件设计中,细节具有多变性,而抽象层则相对稳定,因此以抽象为基础搭建起来的架构要比以细节为基础搭建起来的架构要稳定得多。这里的抽象指的是接口或者抽象类,而细节是指具体的实现类。使用接口或原创 2020-12-19 12:02:03 · 199 阅读 · 2 评论 -
面向对象设计原则---里氏替换原则
里氏替换原则一、定义继承必须确保超类所拥有的性质在子类中仍然成立里氏替换原则主要阐述了有关继承的一些原则,也就是什么时候应该使用继承,什么时候不应该使用继承,以及其中蕴含的原理。里氏替换原是继承复用的基础,它反映了基类与子类之间的关系,是对开闭原则的补充,是对实现抽象化的具体步骤的规范。二、 里氏替换原则的作用里氏替换原则是实现开闭原则的重要方式之一。它克服了继承中重写父类造成的可复用性变差的缺点。它是动作正确性的保证。即类的扩展不会给已有的系统引入新的错误,降低了代码出错的可能性。加强原创 2020-12-19 11:26:27 · 250 阅读 · 1 评论 -
面向对象设计原则---开闭原则
开闭原则(Open Closed Principle,OCP)一、定义:软件实体应当对扩展开放,对修改关闭;这里的软件实体包括以下几个部分:项目中划分出的模块类与接口方法开闭原则的含义是:当应用的需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,可以扩展模块的功能,使其满足新的需求。具体来说就是你应该通过扩展来实现变化,而不是通过修改原有的代码来实现变化。二、 开闭原则的作用开闭原则是面向对象程序设计的终极目标,它使软件实体拥有一定的适应性和灵活性的同时具备稳定性和延续性。具原创 2020-12-19 10:05:57 · 273 阅读 · 1 评论