`

OOP

    博客分类:
  • oop
阅读更多
OO基础
抽象
封装
继承
多态

OO原则
封装变化:找出应用中可能需要变化的地方,把他们封装起来,不要和那些不需要变化的代码混在一起
针对接口编程,不针对实现编程:针对超类型编程(变量的声明类型应该是一个超类型,通常是一个抽象类或者接口)
多用组合,少用继承
为交互对象的松耦合设计努力(耦合原则)
类应该对修改关闭,对扩展开发(开闭原则)
依赖抽象,不要依赖具体类(依赖倒置原则)

只和朋友交谈(最少知识原则)
别来找我,我会找你(好莱坞原则)
一个类应该只有一个引起变化的原因

OO模式
分类:行为型,结构型,创建型

1.单件模式:确保一个类只有一个实例,并提供一个全局访问点

2.工厂模式:
  简单工程模式:直接封装一些产生对象的代码。(SimplePizzaFactory)
  工厂方法模式:定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个,工厂
                方法把类的实例化推迟到子类
  抽象工厂模式:提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类

3.策略模式(封装算法):定义了算法族,分别封装起来,让他们可以互相替换,此模式让算法的变化独立于算法的客户

4.装饰者模式(添加责任):动态的将责任附加到对象上,要想扩展功能,装饰者提供了有别于继承的另一种方式(java io)

5.观察者模式:在对象之间定义一对多依赖,这样一来,当一个对象改变状态,依赖他的对象都会接到通知,并自动更新

6.命令模式:将请求封装成对象,这可以让你使用不同的请求,队列,或者日志请求来参数化其他对象。命令模式支持撤销操作。(spring mvc)

7.适配器模式(转换接口):将一个类的接口,转换成客户期望的另一个接口,适配器让原本不兼容的类可以合作无间(java swing)

8外观模式(简化接口):提供一个统一的接口,用来访问子系统中一群接口,外观定义了一个高层接口,让子系统更容易维护

9.模板方法模式:在一个方法中定义一个算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不修改算法结构的情况下,重新定义算法的某些步骤。可以使用钩子

10.迭代器模式:提供一种方法,顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示
  
11.组合模式:允许你将对象组合成树形结构来表现“整体/部分”的层次结构。组合能让客户以一致的方式处理个别对象和对象集合

12.状态模式:允许对象在内部状态改变时改变行为,对象看起来修改了它的类。糖果机

13.代理模式:为另一个对象提供替身或占位符以访问这个对象。远程代理管理客户与远程对象之间的交互。虚拟代理控制访问实例化大的对象。保护代理基于调用者控制对对象方法的访问

14.复合模式:复合模式结果两个或以上的模式,组成一个解决方案,解决一再发生的一般性问题

OO反模式:告诉你如何采用一个不好的解决方案去解决一个问题

其余模式:
桥接:使用桥接模式,不止改变你的实现,也改变你的抽象
生成器:封装一个产品的构造过程,并允许按步骤构造
责任链:当你想让一个以上的对象有机会能够处理某个请求的时候,就是用责任链模式
蝇量:用某个类的一个实例来提供许多“虚拟实例”
解释器:为语言创建解释器
中介者:集中相关对象之间复杂的沟通和控制方式
备忘录:当你需要对象返回之前的状态时(例如你的用户请求撤销或者游戏的存档),就使用备忘录模式
原型:当创建给定类的实例的过程很昂贵或者很复杂时,就是用原型模式
访问者:当你想要为一个对象的组合增加新的能力,且封装并不重要时,就使用访问者模式


目标
可复用性、可扩展性、可维护性、高效及稳定

参考书籍:《head fisrt设计模式》
分享到:
评论

相关推荐

    oop(面向对象程序设计)考试题

    面向对象程序设计(Object-Oriented Programming,简称OOP)是一种广泛应用的编程范式,它以对象为中心,通过封装、继承和多态等核心概念来组织代码。在浙江大学的OOP考试中,考生通常需要对这些核心概念有深入理解...

    工业自动化 TwinCAT3 OOP编程基本例程(方法,接口,属性,实现)

    本教程将深入探讨TwinCAT3中的面向对象编程(OOP)概念,包括方法、接口、属性以及它们的实现。这将帮助工程师更高效地编写和组织复杂的自动化程序。 首先,我们来看**方法**。在OOP中,方法是对象可以执行的操作。...

    s2 JavaOOP上机作业全部代码

    Java面向对象编程(Java OOP)是Java编程的核心概念,它允许我们以真实世界中的实体——如对象——的方式来思考和构建软件。在这个“s2 JavaOOP上机作业全部代码”压缩包中,包含了学生在学习Java OOP时可能遇到的...

    AN_Simple_OOP_in_C.pdf

    面向对象编程(OOP)是一种设计方式,它不仅局限于使用特定的语言或工具,而是基于三大基础设计元模式:封装、继承和多态。封装是将数据和函数打包成类的能力;继承是从现有类定义新类的能力,以此实现代码复用和...

    JavaOOP_第1章上机练习.zip

    Java面向对象编程(Object-Oriented Programming,简称OOP)是Java编程的核心概念,也是现代软件开发中的基础设计理念。在"JavaOOP_第1章上机练习.zip"这个压缩包中,我们可以预见到它包含了关于Java OOP的初步学习...

    OOP(面向对象编程)四个基本原则

    面向对象编程(Object-Oriented Programming,简称OOP)是一种重要的编程范式,它基于“对象”的概念,通过封装、继承和多态等机制来组织代码。在OOP中,有四个基本原则,它们是设计高质量、可维护软件的基石。这四...

    C#OOP上机练习-Chapter8田超凡.zip

    在本资源"C#OOP上机练习-Chapter8田超凡.zip"中,我们主要探讨的是C#面向对象编程(Object-Oriented Programming, OOP)的实践应用。这一章节可能涵盖了类、对象、封装、继承、多态等核心概念。下面我们将详细解析...

    java oop 面向对象( 门禁系统)

    面向对象编程(Object-Oriented Programming,简称OOP)是Java语言的核心概念,它是一种将现实世界中的事物抽象为程序中的对象的编程范式。在Java OOP中,我们通过类(Class)来定义对象(Object)的结构和行为,...

    C++(OOP)教材

    C++基于C语言并扩展了其功能,引入了面向对象编程(OOP)的概念,使得程序设计更加贴近实际问题的解决方式。 面向对象程序设计(OOP)的基本思想是将程序设计中的数据和操作数据的方法结合在一起,形成对象。这种...

    OOP的未来.pdf

    标题和描述均提到了"OOP的未来",即面向对象程序设计(Object-Oriented Programming,简称OOP)的前景。OOP是一种编程范式,它使用“对象”来设计软件,对象不仅包含数据,还包含处理这些数据的方法。在IT行业,OOP...

    编程范式与OOP思想

    在多种编程范式中,面向对象编程(Object-Oriented Programming,OOP)是一种十分流行的编程范式,它将现实世界中的事物和概念抽象成对象,并让这些对象在程序中相互作用,以完成特定的任务。 OOP的核心思想是使用...

    Java OOP编程思想学习之我见

    ### Java OOP编程思想学习之我见 在深入探讨Java面向对象编程(OOP)之前,我们首先要理解OOP的基本概念及其与过程式编程的区别。Java作为一种强大的编程语言,其设计初衷之一就是全面拥抱OOP理念,这不仅体现在...

    PHP OOP入门必读

    OOP(面向对象编程)是编程的一种高级方法,它使代码更易于维护、扩展和重用。本资料集合旨在帮助初学者理解并掌握PHP中的OOP概念。 首先,我们从"PHP5面向对象初步(第一章).pdf"开始,这一章节通常会介绍OOP的...

    Java 第一阶段建立编程思想 【零钱通(OOP)】---- 代码

    Java 第一阶段建立编程思想 【零钱通(OOP)】---- 代码 Java 第一阶段建立编程思想 【零钱通(OOP)】---- 代码 Java 第一阶段建立编程思想 【零钱通(OOP)】---- 代码 Java 第一阶段建立编程思想 【零钱通(OOP)...

    书籍:C语言实现OOP

    《C语言实现OOP》是一本独特而富有挑战性的书籍,它揭示了如何在传统的、非面向对象的C语言中实现面向对象编程(OOP)的概念。面向对象编程是一种广泛应用于现代软件开发的方法,它强调数据和操作数据的函数封装在...

    javascript oop模式讲解

    JavaScript OOP(面向对象编程)模式是编程领域中一种重要的设计思想,它允许开发者通过类和对象来组织和管理代码,提高代码的可重用性和可维护性。在这个讲解中,我们将深入探讨JavaScript中的OOP模式,特别是如何...

    php5 oop编程书

    《PHP5 OOP编程书》是一本专注于面向对象编程(OOP)在PHP5中的实践与应用的专业书籍。面向对象编程是现代软件开发中的核心概念,它通过类和对象的概念,提高了代码的重用性和可维护性。在PHP5中,OOP得到了显著的...

    新闻快客(纯OOP编写)

    【新闻快客】是一款完全基于面向对象编程(OOP)理念设计和编写的新闻发布软件。面向对象编程是现代软件开发中的核心编程范式之一,它以类和对象为基本单元,强调数据封装、继承和多态这三大特性。这款应用的创建...

    OOP_CODE详细代码

    面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,它基于“对象”的概念,将数据和操作数据的方法封装在一起,以实现代码的模块化和重用性。在OOP_CODE详细代码中,我们可以看到一个针对初学者...

    oop_java编程_11oop.com_DEMO_528OOpJ_silk4vc_

    在本压缩包中,我们关注的是“oop_java编程_11oop.com_DEMO_528OOpJ_silk4vc_”这个项目,它显然与Java编程中的面向对象编程(Object-Oriented Programming,简称OOP)相关,可能是11oop.com网站提供的一款教学DEMO...

Global site tag (gtag.js) - Google Analytics