`
huakewoniu
  • 浏览: 47674 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

java 开发几个设计原则;

    博客分类:
  • java
阅读更多

java 开发几个设计原则;

1单一职责原则【Single Responsibility Principle】

单一职责原则:应该有且仅有一个原因引起类的变更

那使用了单一职责原则有什么好处呢?
类的复杂性降低,实现什么职责都有清晰明确的定义;
可读性提高,复杂性降低,那当然可读性提高了;
可维护性提高,那当然了,可读性提高,那当然更容易维护了;
变更引起的风险降低

 

单一职责即一个方法尽可能做一件事情,比如一个方
法修改用户密码,别把这个方法放到“修改用户信息”方法中,这个方法的颗粒度很粗,比如这个一个方
法:
IUserManager
<<interface>>
+public void changeUser(IUserBO userBO, int type, String...changeOptions)
在IUserManager 中定义了一个方法叫changeUser,根据传递的type 不同,把可变长度参数changeOptions 修改到userBo 这个对象上,并调用持久层的方法保存到数据库中。这个接口设计得很糟糕

现在修改如下:

IUserManager
<<interface>>
+public void changeUserName(String newUserName)
+public void changeHomeAddress(String newHomeAddress)
+public void changeOfficeTel(String telNumber)
你要修改用户名称,就调用changeUserName 方法,你要修改家庭地址就调用changeHomeAddress,你
要修改单位单户就调用changeOfficeTel 方法,每个方法的职责就非常清晰,这也是一个良好的设计习惯。

 

2 里氏替换原则【Liskov Substitution Principle】

定义functions that use pointers or references to base classes must be able to use
objects of derived classes without knowing it.
所有引用基类的地方必须能透明地使用其子类的对象。

要求

A子类必须完全的实现父类的方法

B子类可以有自己的个性

C覆盖或实现父类的方法时输入参数可以被放大

D覆盖或实现父类的方法是输出结果可以被缩小

3迪米特法则

迪米特法则也叫做做最少知识原则(Least
Knowledge Principle,简称LKP

A只和朋友交流

朋友即出现在成员变量、方法的输入输出参数中的类被称为成员朋友类,

但是朋友也是有距离的,不能把自己暴露得太多给自己的朋友

B自己的就是自己的。在项目中有一些方法,放在本类中也可以,放在其他类中也没有错误,那怎么
去衡量呢?你可以坚持这样一个原则:如果一个方法放在本类中,即不增加类间关系,也对本类不产生负
面影响,就放置在本类中。

迪米特法则的核心观念就是类间解耦,弱耦合,只有弱耦合了以后,类的复用率才可以提高,其要求
的结果就是产生了大量的中转或跳转类,类只能和朋友交流,朋友少了你业务跑不起来,朋友多了,你项
目管理就复杂。 

分享到:
评论

相关推荐

    Java面向对象的设计原则

    面向对象设计原则是Java开发中不可或缺的指导方针,它们帮助我们构建可维护、可扩展且高效的应用程序。这里主要讨论的是“优先使用对象组合而非类继承”这一原则,以及继承的相关概念。 对象组合,也称为聚合或包容...

    java网页浏览器开发课程设计

    设计的目标主要包括以下几个方面: 1. **应用Java知识**:学生需要运用Java基础知识编写程序,实现简单易用的功能,如打开网页、保存网页、前进和后退,以及查看网页源代码。这有助于加深对Java语法和API的理解。 ...

    Java项目设计与开发范例

    《Java项目设计与开发范例》是一本深入探讨Java编程在实际项目中的应用的教材,其配套源代码提供了丰富的实例,旨在帮助读者更好...同时,理解并应用书中的设计原则和最佳实践,将使你在Java开发的道路上更加得心应手。

    JAVA架构设计原则与J2EE必读书目推荐

    在探讨JAVA架构设计时,有几个核心原则是必不可少的: 1. **分层原则**:这一原则强调通过分层来降低软件的复杂性。它将整个系统划分为不同的逻辑层级,每一层都承担特定的功能,并且各层之间相对独立。这种分层有...

    java开发中使用的设计模式

    ### Java开发中使用的设计模式详解 #### 设计模式概述 设计模式是在软件设计过程中解决常见问题的一套可重复使用的解决方案。这些模式可以帮助开发者编写出更易于理解、维护和扩展的代码。本文主要针对依赖与关联、...

    JAVA设计模式之设计原则 ---开闭原则源码

    开闭原则是面向对象设计中的一个核心原则,它在JAVA设计模式中占据着重要的地位。这一原则由格里·贝斯提出,旨在指导开发者如何设计可维护和可扩展的软件系统。开闭原则(Open-Closed Principle,OCP)的核心思想是...

    阿里Java开发手册(第一版到嵩山版共8个版本)

    在嵩山版中,手册涵盖了以下几个核心知识点: 1. **基本编码规范**:这是Java程序员日常工作中最基础的部分,包括变量命名、注释规则、代码格式化等。遵循这些规范可以提高代码可读性和一致性,便于团队协作。 2. ...

    JAVA开发源代码

    在Java开发中,我们需要了解以下几个核心概念: 1. **语法基础**:Java语法与C++相似,但更简洁。它包括类、对象、接口、继承、封装、多态等特性。例如,我们通过`public class MyClass{}`定义一个公共类,使用`...

    如何搭建自己的Java开发框架

    Java开发框架搭建指南 Java 开发框架是 Java 程序员不可或缺的工具之一,然而,如何搭建自己的 Java 开发框架却是一件需要细心规划和设计的事情。在本文中,我们将讨论如何搭建自己的 Java 开发框架,包括整体框架...

    java开发面试总结

    这里,我们重点讨论几个关键知识点,包括前端技术、JavaScript、Ajax、Java基础以及Web开发框架。 1. **前端开发技术:CSS+DIV,JS,JQuery** - CSS+DIV:面试中可能会询问布局方式,如流式布局、网格布局和响应式...

    JAVA-CS快速开发框架设计文档

    在Java开发中,IDE(集成开发环境)如Eclipse和IntelliJ IDEA通常为开发者提供了极大的便利,包括代码自动完成、调试工具和项目管理功能。但在某些场景下,如远程开发或轻量级环境,开发者可能需要脱离IDE进行工作。...

    java 开发模式

    接下来,我们将详细介绍几种典型的Java设计模式。 ### 工厂方法模式(Factory Method) #### 概念 工厂方法模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。它定义了创建产品对象的接口,但由具体的...

    基于Java开发的在线直播平台源码.zip

    "基于Java开发的在线直播平台源码.zip" 暗示这是一个包含Java编程语言开发的在线直播平台的源代码压缩包。它可能是由开发者分享或出售的,用于教学、研究或者作为其他开发者的基础来构建自己的直播应用。 【描述...

    JAVA面向对象的设计原则

    本文将深入探讨面向对象设计中的几个关键原则:单一职责原则、开闭原则(OCP)以及替换原则(LSP),并结合具体应用场景进行阐述。 #### 单一职责原则 (Single Responsibility Principle, SRP) **定义:** ...

    阿里Java开发手册v1.2.0.pdf 完整高清

    手册涵盖了Java语言的各个方面,从基础编码规范到高级设计原则,旨在打造一套完整的Java开发标准。这份PDF版本为v1.2.0,提供了一个清晰、详细的指南,方便开发者随时查阅。 手册的核心内容可以分为以下几个主要...

    java 架构设计示例文档

    文档可能包含以下几个核心部分:需求分析、系统设计、技术选型、模块划分、接口设计、安全策略以及架构图示例等。 1. 需求分析:在架构设计文档的开头,通常会详细描述系统的业务需求和功能需求。这一步骤包括对...

    java开发实战下载

    北风课堂提供了多个关于Java设计模式的课程,涵盖以下几种模式: - **访问者模式**:适用于需要对数据结构中的元素执行操作的情况。 - **迭代模式**:用于顺序访问聚合对象的元素,而不暴露底层表示。 - **组合...

    几个Java类

    在您提供的信息中,"几个Java类"可能是指包含一些Java源代码文件(.java)的压缩包,这些文件可能定义了不同的类,用于实现特定的功能。尽管描述中提到这些类“价格性不高”且可能“太小”,但它们仍然是理解Java...

    java开发的国家电力系统所有源代码

    国家电力系统的源码可能包含以下几个关键模块: 1. 用户管理:包括用户注册、登录、权限分配等功能,通常会使用到Spring Security或Apache Shiro等安全框架。 2. 数据采集:系统需要实时收集各地电力设施的数据,这...

    JAVA公共资源模块的设计与开发(源代码+论文).zip

    设计公共资源模块时,我们需要考虑以下几个关键点: 1. **模块化设计**:采用模块化设计可以将复杂系统分解为可管理的部分。例如,我们可以创建一个独立的日志模块,提供统一的日志记录接口,便于在项目中统一管理...

Global site tag (gtag.js) - Google Analytics