前言今天,马仔没有加班,早早就回到了宽敞明亮的家。一开门,就听到女友的声音:“饭在锅里,我在床上。……”铃儿响叮当……嗯,闹钟的声音不仅打破了清晨的宁静,也打破了院子男孩的美梦……程序员还想要女朋友?可是!最烦人的麻子的问题在于他不仅没有女朋友,而且每天还要和不同的“对象”打交道,程序员的世界里有一句话:“万物皆对象”,我们和各种“对象”打交道”每天,用各种方法处理“物”之间的关系。试想,我为什么不能把工作中协调“物”的方法应用到自己身上呢?那我是不是也能熬过去呢?只是做起来,用方法!只为我女朋友责任——单一责任链首先,在代码世界里,单一责任链原则的定义是这样的:单一责任原则(SRP):一个类只负责一个职能领域的相应责任,或者它可以定义为:只是对于一个类,它应该只有一个改变的原因。它具有高内聚、低耦合的特点。也就是说,我们在设计一个类的时候,把实现某一类功能的方法合并到同一个类中,让它只负责单一的功能,这样可以大大降低代码耦合度。例如:我们在代码中封装了一个图像处理类来处理所有的图像显示问题。有圆角展示图、圆形截取图、模糊图等,都符合单一职责原则。这个类只对Image的显示处理负责。但是如果我们封装了下载、删除图片等方法,那么类虽然功能多了,但也需要承担更多的责任,后期的维护和管理也会比较麻烦。那么这个原理应该如何应用到我们所说的对象上呢?其实都是一样的,单一职责,只有一个人负责。我们只需要对自己的“对象”负责。你不需要为别人的“对象”负责。然后强行破坏你们之间脆弱的关系。OnePromise——开闭原则先来看看开闭原则的定义:开闭原则(OCP):一个软件实体应该对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。也就是说,我们在对项目进行维护和升级时,尽量不要修改已经写好的代码(除非是bug)通过继承或者其他方式来增加新的功能。那么这个原则如何适用于我们正在谈论的人呢?两个人交往一定要有一些保证和承诺,这些东西一定要牢记在心,绝对不能修改。如果你不放弃,就会让人觉得不可信,不可靠。当你的女朋友对你有这种认知的时候,你们的关系很有可能会冷淡。明确范围——里氏代换什么是里氏代换原则:里氏代换原则(LiskovSubstitutionPrinciple,LSP):所有对基类(父类)的引用必须能够透明地使用其子类的对象。也就是说,如果一个基类对象在软件中被其子类对象替换,程序将不会产生任何错误和异常,反之则不然。如果一个软件实体使用了子类对象,那么它不一定能够使用基类对象。这显然是一种通过继承来提炼思想的方法。那么我们如何用这种方法与生活中的伴侣相处融洽呢?和我们的伴侣一起吃饭也很麻烦,因为她总是有这些和其他她不吃的东西。有时她会指定她不吃什么(大蒜、菠菜),但有时她会给你一个范围:不吃蔬菜。如果她告诉你不要吃菠菜,那么她可能会吃生菜或其他绿色蔬菜,但如果她告诉你不要吃绿色蔬菜,如果你仍然以直男思维给她生菜,并说:“你不想吃蔬菜?这是生菜,不是蔬菜!”那么你就不需要爱上你的大脑。以相同的方式应对所有变化——依赖倒置原则我们先来了解一下这个原则:依赖倒置原则(DIP):抽象不应该依赖于细节,细节应该依赖于抽象。换句话说,针对接口编程,而不是针对实现。依赖倒置原则要求我们在程序代码或关联关系中传递参数时,尽可能引用高层抽象层类,即使用接口和抽象类进行变量类型声明、参数类型声明、方法返回类型声明和数据类型转换等,而不是使用具体的类来做这些事情。我们在实现依赖倒置原理时,通常需要针对抽象层进行编程,通过依赖注入(DependencyInjection,DI)的方式将特定类的对象注入到其他对象中。依赖注入是指一个对象需要依赖其他对象的时候。当建立关系时,通过抽象注入依赖对象。常用的注入方式有3种,分别是:构造注入、设置器注入(Setterinjection)和接口注入。(依赖注入不仅解耦,还方便单元测试)给谈恋爱的女朋友买东西很麻烦,因为女人善变。前一秒她还跟你说她喜欢这个颜色的口红,下一秒就可能换成另一种颜色的包包。所以谈恋爱的时候,与其猜测,不如一步到位,直接给钱,留着一样,想买什么就买什么,方便又省事。(哎!可怜的码小子,我只能继续为自己的性生活搬砖)对症下药——接口隔离原则这个原则的定义是这样的:接口隔离原则(InterfaceSegregationPrinciple,ISP):使用多个专门化的接口,而不是使用单一的通用接口,也就是说,客户端不应该依赖那些它不需要的接口。接口隔离原则和单一职责原则都是接口设计的规范。但单一职责原则强调的是职责的单一性,即业务分工的单一性;接口隔离原则强调在具体实现过程中接口的规模不宜过大。比如一个接口的设计符合单一职责原则,只包含一个职责的定义,但是实现这个职责需要更多的函数或者方法,而且并不是所有的模块在使用这个接口的时候都会使用所有的方法,那么这个interface的设计不符合接口隔离原则。编程不仅要接口隔离,还要讲对象。广大男同胞一定有一个通病:主题告诉你身体不舒服,你回复“多喝点热水”;主题告诉你你感冒了,你回复“多喝热水”;主题告诉你无聊,你回复“多喝热水”……热水能治百病。所以我敢肯定你活不过三秒钟。什么药治什么病,对症下药才是王道。不要到处乱花——迪米特法则最后一个原则,迪米特法则(LawofDemeter,LoD):一个软件实体应该尽可能少地与其他实体交互。迪米特定律有几种定义,包括:不要和“陌生人”交谈,只和你的直接朋友交流等。在迪米特定律中,对于一个对象,它的朋友包括以下几类:(1)当前对象本身(这);(2)将对象作为参数传入到当前对象的方法中;(3)当前对象的成员对象;(4)如果当前对象的成员对象是一个集合,那么Elements也是友元;(5)当前对象创建的对象。任何对象,如果满足上述条件之一,则为当前对象的“朋友”,否则为“陌生人”。当应用迪米特定律时,一个对象只能与直接的朋友互动,而不能与“陌生人”直接互动。这样可以降低系统的耦合度,一个对象的改变不会给其他对象带来太多的改变。影响。“不要和陌生人说话”,有伴就出去调情肯定不行,毕竟两个人谈恋爱还是要坦诚相见的。只有一心一意为对方着想,两人的感情才能长久。综上所述,以上就是“对象”的六大原则。熟练掌握这六大原则,不仅能让我们在物质层面更好地满足“对象”(代码写好了,钞票还远吗?),还能让“对象”在精神层面满足自己(对象是幸福的你离你的心还远吗?)。所以无论是为了我们的幸福生活,还是为了我们的性生活,学习面向对象都是很有必要的。快点!骚年
