重复代码和单一职责

重复代码和单一职责

问:面向对象设计的三个原则
  1. 答:面向对象设计的原则是单一职责原则、开放-封闭原则、Liskov替换原则、依赖倒置原则、接口隔离原则。
    1、单一职责原则。
    2、开放-封闭原则(对扩展开放;对修改关闭)。
    3、Liskov替换原则(子类型必须能够完全替换其父类型(继承);关注行为的替换(多态))。
    4、依赖倒置原则(依赖抽象;面向接口编程等)。
    5、接口隔离原则(接口尽量小;接口要稳定,职责要单一;多个小接口比一个大的通用接口要好等)。
    三个基本特征
    1、抽象与封装:
    抽象是把系统中需要处理的数据和在这些数据上的操作结合在一起,根据功能、性质和用途等因素抽象成不同的抽象数据类型。每个抽象数据类型既包含了数据,又包含了针对这些数据的授权操作。在面向对象的程序设计中,抽象数据类型是用“类”这种结构来实现的,每个类里都封装了相关的数据和操作。
    封装是指利用抽象数据类型和基于数据的操作结合在一起,数据被保护在抽象数据类型的内部,系统的其他部分只有通过包裹在数据之外被授权的操作,才能与这个抽象数据类型进行交互。
    2、继承:
    它是与传统方法不同的一个最有特色的方法。它是面向对象的程序中两个类之间的一种关系,即一个类可以从另一个类(即它的父类)继承状态和行为。继承父类的类称为子类。
    继承的优越性:通过使用继承,程序员可以在不同的子类中多次重新使用父类中的代码,使程序结构清晰,易于维护和修改,而子类又可以提供一些特殊的行为,这些特殊的行为在父类中是没有的。
    3、多态:
    是指一个程序中同名的方法共存的情况,调用者只需使用同一个方法名,系统会根据不同情况,调用相应的不同方法,从而实现不同的功能。多态性又被称为“一个名字,多个方法”。
问:Java 设计模式,“单一职责原则”中说“每一个类只负责一项任务”。那么...
  1. 答:一些小职责可以用内部类,static class A{} ,源文件不须太多
    设计也是对已经存在的问题进行分类,而不在抽象上做不实际的细分吧..
    至于类多,可以参考一派的观点OOP是有残疾的,纯OO经常导致画蛇添足...代码量翻倍
    退回到过程和对象混用...尽量少分类,多用函数式纯函数,
    现在的python就持这类理念
  2. 答:应该遵循原则
    至于代码“又多又难找”这个问题是你需要想办法解决的
    应该规范书写 并加以适当的注释 同时注意编写文档
问:单一职责原则的相关知识
  1. 答:单一职责原则并不是一个孤立的面向对象设计原则,它是面向对象设计五个基本原则(SOLID)之一。这些原则是:单一职责原则、开闭原则、接口隔离原则、里氏替换原则和依赖倒置原则。这些原则被一起应用时可以使一个软件系统更易被维护和扩展。这些原则被典型的应用在测试驱动开发上,并且是敏捷开发以及自适应软件开发等指导思想的重要组成部分。
  2. 答:单一职责指根据职责去创建类,一个类只负责一项职责。例如权限管理中,用户信息维护为一项职责,用户逻辑操作为另一项职责。
    单一职责让类的复杂性降低了,复杂性降低随之而来的是可读性、可维护性和变更引起的风险降低。不过存在一个问题就是,“职责”和“变化原因”不可度量,而且考虑到其它诸多因素,在类设计里面使用单纯的单一职责模式并不是太多。
    不过这个模式可以延展到接口设计、函数编写。不仅可操作性强,而且能实际的提高代码的质量。比如一个函数就负责一个功能,根据函数名就能确定函数功能。
重复代码和单一职责
下载Doc文档

猜你喜欢