`
huntersp
  • 浏览: 41077 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

面向对象编程的一些应该遵循的东西

阅读更多
[/b]  [b]1.面向接口和抽象编程,而不要编程到类,这分离了接口与他们的实现。
     比如:有一个Circle类,我们需要调用其draw方法来画圆。一种面向具体的写法就是:
         Circle circle = new Circle();
         circle.draw();
     而设计模式告诉我们,应该面向接口编程,我们让Circle继承Sharp接口,然后写成这样:
          Sharp sharp = new Circle();
         sharp.draw();
     这样,代码之间的耦合度就降低了,加入新的图形比如Line的时候,并不用去修改实现代码。
      我想说的一点是,不要过度使用接口,这也是敏捷编程提倡的,比如说只有一个图形,那么就不需要接口了,接口是相似类型的相同实现,当没有相似类型的时候,没必要使用接口,抽象类同理。接口应尽量保持为最小程度。

    2.优先组合而非具体继承性。
      继承性会产生数量庞大的子类和他们之间的耦合关系,业务逻辑简单还好。如果复杂一些,纯用继承会造成整个代码高耦合,难于维护。
      比如:现在有3个图形,圆,直线,正方形。有3种绘制他们的方法,分别为d1,d2,d3。如果用继承,会产生3x3=9个子类,来实现绘制图形的类。如果再增加算法和图形,会产生更多的类,而且子类基本不能重用,只能耦合到特定的图形和算法上面。

    3.合并方法参数
       把一个方法的参数封装到单个对象中,这样可以提高代码的易读性,并简化调用代码.考虑下面的例子:
       public void mutiPara(String para1,String para2,String para3);
       通过把这些多个参数组合为单个对象,我们可以简化这个方法:
       public void singlePara(Options options);
       public class Options{
         
           private String para1;
           private String para2;

       }
       更复杂的还可以有多个Options,可以设计一个统一的接口进行调用.

       4.消除代码重复
           代码重复对维护来说是致命的,通常也体现了开发中的时间浪费.关于重构,可以参考Martin Fowler的书"重构-改善既有代码的设计".

     
  

          
  
分享到:
评论

相关推荐

    Labview面向对象编程

    Labview面向对象编程是NI...通过学习和掌握Labview面向对象编程,开发者可以构建出更复杂、更易于维护的应用程序,适应不断变化的需求,并利用Labview的强大功能进行数据分析、控制工程、测试测量等领域的项目开发。

    面向对象程序设计实训报告.docx

    【面向对象程序设计实训报告】 本实训项目是关于Java编程的课设,主要目标是设计并实现一个“随机点名器”。这个项目旨在帮助学生掌握Java语言中的面向对象编程概念,特别是类的设计、属性和方法的运用,以及数组和...

    《面向对象的程序设计》期末试卷(A)答案.pdf

    类(Class)是面向对象编程的基本单元,它是一个蓝图,描述了创建对象时共有的属性和方法。对象(Object)是类的实例,具有类定义的属性和方法的副本。类的属性和方法称为成员(Members)。 2. 封装 封装...

    PLC的面向对象编程

    面向对象编程在PLC程序设计中具有明显的优越性,主要表现在以下方面: 1. 标准化:将输入输出参数、状态变量等中间变量统一到类中,提高代码的可读性和可维护性。尽管与高级编程语言在某些方面存在差异,但通过遵循...

    面向对象程序设计课程设计——学生成绩管理系统

    全面系统的学习面向对象程序设计的基本概念、基本语法和编程方法。正确理解掌握C++面向对象程序设计的基本特性:类、对象、继承与派生、多态、虚函数、模板、流类库等。遵循软件过程的各个环节进行系统分析、设计、...

    面向对象编程与非面向对象编程

    面向对象编程(Object-Oriented Programming,简称OOP)与非面向对象编程是两种不同的编程范式,它们在软件开发中的应用和设计理念有着显著的区别。本文将深入探讨这两种编程范式的概念、特点及其在实际软件工程中的...

    JAVA面向对象程序设计(期末考试试题及答案).pdf

    Java面向对象程序设计是编程领域中的核心概念,它基于面向对象的编程思想,将现实世界中的实体抽象为类,通过类来创建对象,实现代码的复用和模块化。在这个期末考试试题中,我们看到了一系列关于Java编程的问题,...

    面向对象程序设计c++课后答案

    - **面向对象编程**:侧重于对象的概念,通过封装、继承和多态等机制来组织和管理代码,提高代码的可维护性和可扩展性。 #### 3. 结构化编程的优缺点 - **优点**: - 易于理解和调试。 - 适用于小型项目。 - **...

    写给大家看的面向对象编程书(高清完整第三版)

    面向对象编程(Object-Oriented Programming,简称OOP)是一种广泛应用的编程范式,它将程序设计中的实体抽象为对象,通过对象之间的交互来实现功能。《写给大家看的面向对象编程书》作为一本面向初学者和进阶者的...

    面向对象程序设计上机实验指导书

    C++ 是一种支持面向对象编程的现代通用编程语言,由Bjarne Stroustrup在C语言的基础上发展而来,增加了类、模板、异常处理等面向对象特性。 本实验指导书是为C++学习者提供的一份详实的实践指南,旨在帮助学生理解...

    c++面向对象程序设计(第6版)Walter Savitch 书中的 c++题库

    《C++面向对象程序设计(第6版)》是由Walter Savitch...以上就是C++面向对象编程的一些核心概念,通过《C++面向对象程序设计(第6版)》的配套题库,你可以针对这些知识点进行深入的练习和理解,提升你的C++编程技能。

    面向对象程序设计中的概念

    在面向对象编程中,每个对象都具有自己的状态(属性)和行为(方法)。例如,一个“汽车”对象可能拥有颜色、型号等属性以及启动、停止等行为。 #### 2. 封装与信息隐蔽 **封装**是面向对象编程中的一个重要特性,...

    delphi面向对象编程思想

    为了更好地应用面向对象编程的思想,在设计系统时还需要遵循一定的设计原则,如: - **单一职责原则**:一个类应该只有一个改变的原因。 - **开放封闭原则**:软件实体应该是可扩展的,但不可修改。 - **里氏替换...

    广州大学面向对象程序设计1-7实验报告.zip

    总的来说,这个面向对象程序设计的实验报告系列全面覆盖了OOP的核心概念和技术,对于理解和掌握面向对象编程有着极大的帮助。通过这些实验,学生不仅能深入理解理论,还能获得实践操作的经验,为未来的软件开发打下...

    Visual C++面向对象程序设计教程与实验(第三版)课件

    《Visual C++面向对象程序设计教程与实验(第三版)》是一本深入讲解C++编程技术,特别是结合Microsoft Visual C++开发环境的教材。面向对象编程(Object-Oriented Programming, OOP)是C++的核心特性,通过封装、...

    结构化程序设计方法与面向对象程序设计方法之比较.

    结构化程序设计方法与面向对象程序设计方法是两种在软件工程领域内被广泛采用的编程范式,它们各自拥有独特的设计理念、实现方式以及适用场景。接下来,我们将深入探讨这两种方法的基本思想、概念术语、编程语言、...

    面向对象程序设计实验3

    这个实验,"面向对象程序设计实验3",显然旨在帮助学生深入理解并应用面向对象编程的原理和实践。C++是一种强大的、静态类型的、编译式的、通用的、大小写敏感的、不仅支持过程化编程,也支持面向对象编程的编程语言...

Global site tag (gtag.js) - Google Analytics