1 面向对象编程的核心思想是针对接口编程而不是针对实现编程。只要订好了接口就是许下了承诺是不容许轻易更改的。
2 单一职责原则,一个类因该只有一个原因引起他的改变,所以其实现的功能要尽量的单一。
如经典的 MVC设计模式,其基本流程:用户与视图交互,视图接受并反馈用户的动作,视图将相应的请求的请求转给相应的控制器,由控制器来决定调用哪一个模型,然后由模型来调用相应的业务逻辑来对用户的数据进行加工处理,如果需要返回数据,模型会将数据返回给控制器,由控制器调用相应的视图,最终由视图格式化和渲染返回的数据。 各司其职,非常完美。
3 所谓开闭原则有一个很经典的解答:天庭上的官职是一个萝卜一个坑,官职一旦确定了就不能再改变,而如果孙悟空来了的话就得给它安排一个新的职务。总的来说就是对修改关闭,对扩展开放。 要做到开闭原则就要封装变化,也就是把变化通过接口和抽象类将变化给封装起来,不针对具体实现编程,如果以后需要扩展新的功能,只要实现接口或是继承抽象类就能够覆盖或者扩展新的功能,这样做也不会影响原有的功能,就做到了开闭原则。再比如在android中,对adapter view的实现就很好的实现了开闭原则,定义好了bindView 等几个接口后,client可以根据自己的需要来摆放自己的各个view。再如java中的泛型,简直就是经典。
4李氏替换原则说的是子类一定要能够替代其基类.就像法海的职务是降魔除妖,只要你是妖她就要除,并不管你是个什么妖. 因为不管是白蛇还是青蛇都是蛇妖,也都是妖。不能说因为你是白蛇就不是妖了...
5 迪米特法则(law of demeter)is also named last konwledge principle.。不要和陌生人说话,对于陌生人知道得越少越好。一个模块实现的好坏,从广义上讲就是看该模块从多大程度上将自己的内部数据和实现的细节隐藏起来。应该尽可能少的和其它实体发生相互作用。实现的技巧:在类的划分上要创建弱耦合的类,在类的结构设计上每个类都因该降低成员的访问权限(一开始可以都是private,需要的时候在进行转变);一个类因该尽量设计成不会改变的类;一个类对其它的对象的应用因该降到最低;尽量限制局部变量的作用范围。 在调用方和别调用方之间形成一个抽象层,被调用方在遵守抽象层的前提下可以自由变动。抽象层是调用放的朋友,抽象层负责调用对调用放陌生的被调用者完成任务。
6 合成复用原则更简洁的表述是要尽量使用合成和聚合不要使用继承。使用继承的话就会把父类直接暴露给了子类,违背了信息隐藏的原则,如果超类发生了变化,子类也会跟着变化就导致了耦合,不利于类的扩展复用,
7 工厂模式 简单工厂模式要解决的问题就是如何去实例化一个合适的对象,核心思想是有一个专门的类来负责类的创建的工作。
具体来说,把产品看着是一系列的类的集合,这些类是由某个抽象类或者接口派生出来的一个对象树。而工厂类用来产生一个合适的对象来满足客户的要求。
形象化的解释是用户像一个工厂下单订购一批不同的产品,工厂根据用户的”单“来决定生产什么产品。也就是说有一个接口或是抽象类叫Product,然后concreteProdect 继承这个Product类成为许多不同的产品,然后工厂根据用户下的单来确定生产什么产品。但是简单工厂设计模式违背了开放封闭原则,因为当新增加了一种产品之后,工厂类必须知道这个产品,而且必须知道怎么创建,这就要修改工厂类。所以简单工程是不利于构造总是在变化的系统的。
由于简单工厂不能应对变化,所以有了多工工厂模式,也就是说有一个抽像的工厂,然后具体的工厂继承这个工厂,负责创建具体的类。不过这个多工厂模式的缺点是客户端必须知道需要使用哪一个工厂。
8 单例模式:ensure a class only have one instance,and provide a global point of access to it.
要点:一个类只能有一个实例,他必须自己创建这个实例,他必须向整个系统提供这个实例。
单例模式的使用场景:多个线程之间共享同一个资源或者操作同一个对象
在程序之间使用全局变量,共享资源。
在大型程系统志宏为了性能的考虑,需要节省创建的时间。
9 原型模式:通过将一个原型对象传给那个需要发动创建的对象,这个要发动创建的对象则通过拷贝原型对象的数据来实施创建。
分享到:
相关推荐
《深入浅出设计模式》是一本深受欢迎的设计模式学习书籍,旨在帮助读者理解并熟练运用设计模式。在本文中,我们将重点关注策略模式以及它与三个核心设计原则的关系。策略模式是一种行为设计模式,它使你能在运行时...
这篇“设计模式的读书总结笔记”是对设计模式深入理解和应用的结晶,包含对各种模式的实例解析、优缺点分析以及如何在实际项目中应用的指导。 一、设计模式的基本概念 设计模式并不直接提供代码实现,而是描述在...
《设计模式学习笔记》主要探讨了GOF的23种设计模式以及类设计的基本原则,旨在帮助开发者理解和应用这些经过时间验证的成熟解决方案。...再次阅读设计模式的笔记,旨在深化理解,发掘设计模式在实际开发中的真正价值。
在阅读《Hear First设计模式》的过程中,我们可以了解到各个章节对不同设计模式的详细解析。 第一章可能介绍了设计模式的基本概念,包括模式的定义、分类以及为什么要在软件开发中使用设计模式。作者可能讨论了设计...
《HeadFirst设计模式学习笔记1--策略模式Demo》 在软件工程中,设计模式是一种解决常见问题的标准方案,它提供了一种在特定情况下组织代码的模板。策略模式是设计模式中的一种行为模式,它允许在运行时选择算法或...
本教程聚焦于C++实现的设计模式,通过英文原版教程和配套的笔记,帮助开发者深入理解和掌握这些模式。 首先,我们要了解设计模式的三大分类:创建型模式、结构型模式和行为型模式。创建型模式关注对象的创建过程,...
设计模式是一种在特定情境下解决问题的可复用的软件设计蓝图,它们反映了软件设计中的最佳实践和经验。本文主要探讨了两种创建型设计模式:工厂...因此,深入理解并熟练运用设计模式是每个IT专业人员必备的技能之一。
《Head First设计模式》是软件开发领域的一本经典著作,其深入浅出地介绍了23种设计模式。第一章主要讲解的是策略模式,这是一种行为设计模式,它使你能在运行时改变对象的行为。策略模式的核心思想是定义一系列算法...
这些文档涵盖了设计模式的基础知识,通过阅读和学习,你可以深入了解每种模式的原理、应用场景及其实现方式,从而提升你的软件设计能力。绘图1.vsd可能是用于描绘设计模式的UML类图或其他图表,它能直观地展示各对象...
这份由台湾作者编写的笔记,结合Java语言,为读者提供了一种深入理解并应用设计模式的方式。以下是对这些设计模式的详细解释: 1. **创建型模式(Creational Patterns)** 创建型模式关注于对象的创建过程,它们帮助...
Java设计模式是软件开发中的重要概念,它是一种在特定情境下解决常见问题的经验总结,能够提升代码的可读性、可维护性和复用性...通过阅读笔记和运行源码,你可以更好地掌握这些经典的设计模式,提升你的Java编程能力。
这个“23种设计模式学习笔记”文档将引导你深入理解这些模式,并帮助你在实际编程中有效地应用它们。以下是对23种设计模式的详细解读: 1. **单例模式**:确保一个类只有一个实例,并提供全局访问点。它常用于控制...
《研磨设计模式》是由陈臣和王斌合著,由清华大学出版社出版的一本深入探讨设计模式的专业书籍。设计模式是软件工程中的一个重要概念,它代表了在特定上下文中解决问题的常见方法,经过时间和实践的验证,具有很高的...
下面,我们将深入探讨其中的一些关键设计模式。 1. **工厂模式**:工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式,通过抽象工厂接口,避免了客户端与具体产品类之间的耦合。在实际应用中,例如,...
观察者模式是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被自动更新。这种模式在很多场景下都有广泛的应用,例如事件处理、...
在本文中,我们将深入探讨设计模式的核心概念,以及如何通过实际应用来理解它们。 设计模式通常分为三大类:创建型、结构型和行为型。创建型设计模式关注对象的创建过程,如单例模式(Singleton)、工厂模式...
在《JAVA与模式读书笔记》中,我们探讨的是Java编程语言与设计模式的结合应用,这对于深入理解面向对象编程和提升软件开发能力至关重要。设计模式是软件工程中的最佳实践,它们是解决常见问题的模板,可以提高代码的...
这本书以其独特的视觉风格和易于理解的教学方法,深入浅出地介绍了设计模式这一复杂的主题。设计模式是软件工程中经过实践验证的解决方案,用于解决在面向对象设计中常见的问题。 本书包含23种经典的设计模式,这些...
对于初学者,可以从以下资源入手深入理解MVC设计模式: 1. 《Head First设计模式》:书中详细介绍了包括MVC在内的多种设计模式。 2. 在线教程:网上有许多关于MVC的免费教程和视频,如Coursera、Udemy等平台上的...
压缩包中的“java”文件可能包含了与Java编程相关的示例代码或项目,这些可以帮助我们更深入地理解和应用策略模式,同时也可能涵盖了其他设计模式和Java编程的最佳实践。通过实际的代码练习和分析,可以巩固理论知识...