`
huntersp
  • 浏览: 40356 次
  • 性别: 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的书"重构-改善既有代码的设计".

     
  

          
  
分享到:
评论

相关推荐

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

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

    结构化程序设计与面向对象程序设计的简述.docx

    关于结构化程序设计与面向对象程序设计的简述 结构化程序设计与面向对象程序设计的简述全文共4页,当前为第1页。 结构化程序设计与面向对象程序设计的简述全文共4页,当前为第1页。 一、结构化程序设计它采用结构化...

    面向对象七大原则

    面向对象编程的七大原则是指在面向对象设计中所遵循的七个基本原则,它们是:开闭原则、依赖倒转原则、单一职责原则、接口隔离原则、迪米特法则、里氏替换原则和组合优于继承原则。 1. 开闭原则(Open-Closed ...

    虚函数 面向对象 实验报告

    面向对象程序设计实验报告中,虚函数是核心概念之一。本实验报告的主要内容是通过虚函数的应用,实现对不同形状的面积和周长的计算。 首先,实验报告定义了一个基类Form,包含两个纯虚函数area()和pemeters()。然后...

    面向对象思想.pdf_电子版_pdf版

    面向对象思想是软件开发中的一种编程思想,它强调将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体。这种思想通过封装、继承和多态三大特性来实现软件的开发和维护。 一、封装 封装是指利用抽象...

    C#面向对象基础教程

    C#面向对象基础教程 电子书 《C#面向对象基础教程》以C#语言面向对象的知识...在介绍C#语言的过程中,始终贯穿了面向对象的编程思想,力求使读者在学习C#语言的同时,深刻体会和理解面向对象编程的精髓和强大的功能。

    面向对象C++编程及可视化程序设计资料

    合理安排 维点分散:本书在知识点的安排和例题的安排上遵循循序渐进的原则 尤其是综合样例的功能分散到各节的相关知识点中介绍 从而达到难点 知识点合理安排的目的 ">1)对象(Object 可以对其做事情的一些东西 一个...

    《Java程序设计案例教程》教学课件05深入Java面向对象.pptx

    模块5 深入Java面向对象 《Java程序设计案例教程》教学课件05深入Java面向对象全文共47页,当前为第1页。 学习目标 01 了解Java面向对象程序设计的思想原则。 02 掌握类的结构、定义及对象的创建和使用。 03 掌握...

    程序设计里面向对象的七条原则

    面向对象的程序中,应遵循的一些原则,这里有关于面向对象的七条原则

    C++语言程序设计(清华大学第四版 郑莉)课后答案

    本资源为C++语言程序设计第四版郑莉课后答案,涵盖了计算机程序设计语言的发展历程、面向对象的编程语言、结构化程序设计方法、对象和面向对象方法、封装、面向对象的软件工程、计算机内部信息分类、二进制和十六...

    谈:面向对象的软件测试与传统测试的比较[4]

    2.程序员应该避免检查自己的程序,测试工作应该由独立的专业的软 谈:面向对象的软件测试与传统测试的比较[4] 软件测试 不论是传统的测试方法还是面向对象的测试方法,我们都应该遵循下列的原则: 1.应当把“尽早...

    程序设计语言的进化.doc

    Simula 67被认为是最早的面向对象程序设计语言,它引入了所有后来面向对象程序设计语言所遵循的基础概念:对象、类、继承。之后,在1968年2月形成了Simula 67的正式文本。 也是在1968年,荷兰教授E.W.Dijkstra提出...

    TextRNN pytorch 面向对象实践

    首先吐槽一下 ,研究机器学习深度学习的时候 发现 各路大神 都是面向过程编程 ,非常简单的东西看的也是云里雾里,代码面向对象编程 很多东西一看就能看明白, 希望借此能抛砖引玉。 另外命名也喜欢用 驼峰命名法 ...

    Java程序设计实验教案.pdf

    2. 实验项目的设计:包括Java程序的开发环境搭建及基本使用、Java语言基本元素、面向对象编程基础、集合的使用、JDBC编程等实验项目,每个实验项目都有明确的实验目的、实验要求、实验步骤和实验评估标准。...

    C语言实现对象编程之多态代码.rar

    C语言实现对象编程之多态代码.rar 在C语言中还可以实现更深入的面向对象编程多态特性。例如:使用接口(interface)包含多个指向函数的指针,这样就可以实现操作的"多态性"。 在面向对象语言C++的实现上,使用了虚...

    Python——面向对象思想编程(一)

    设计类 类名:见名知意,首字母大写,其他遵循驼峰原则 属性:见名知意,其他遵循驼峰原则 行为(方法/功能):见名知意,其他遵循驼峰原则 举个栗子: 类名:Wife(首字母大写) 属性:性别、年龄、身高、体重 行为:...

    程序设计的基本概念.pptx

    程序设计的基本概念 程序设计与程序设计语言 程序设计:按照任务需要,设计数据结构与算法,编写代码并测试其正确性,得到正确运行结果的过程 程序设计方法学:程序设计应遵循一定的方法与原则,养成良好的编程风格...

    面向对象技术与UML课件及源代码-by 南邮-陈杨

    本书为中南大学精品教材立项项目,分为上下两篇共21章,涵盖了面向对象技术中Java开发环境配置、程序设计基础、面向对象原理以及UML的知识。本书使用的开发环境是JDK 1.6+Eclipse 3.3+Rational Rose 2003,逐步引领...

    61条面向对象设计的经验原则

    请记住并遵循这些原则,你的程序将做的更好!

Global site tag (gtag.js) - Google Analytics