java的10大设计原则

1. DRY (不要重复你自己)

这是指不写重复的代码,取而代之是使用抽象共性的东西。如果超过一次使用硬编码,那么就要考虑将其公开为final修饰的不变量;如果你在两个以上地方有相同的代码块,那么就要考虑使其成为一个单独的方法。SOLID设计原理的好处是在维护。值得注意的是重复的不是指代码,而是对于功能而言的。

2.封装变化 

在软件领域唯一不变的就是“变”,所以封装那些你估计在未来可能被改变的代码。这种设计的好处是容易测试和易于维护。如果你是进行Java编码,那么就要使变量和方法变成私有。有几个Java设计模式采用封装,工厂设计模式封装的是对象创建代码,并提供了在不改变现有的代码情况下推出新产品的灵活性。

3.开闭原则

类,方法或函数应该对扩展开放(新功能)和对修改关闭。这又是一个漂亮的面向对象的设计原则,防止对已经测试过的代码尝试修改。

4.单一职责

不应该有超过一个理由去修改类,因为一个类只能有一个职责功能,如果你将多于一个功能增加到一个类中,相当于在两个功能之间引入了紧耦合。

5.依赖注入或反转控制

不要主动要求依赖,因为它已经由框架提供给你。比如Spring框架等,这样的设计原则妙处在于,它是由DI注入框架的注入匹配需要的类,这样更容易进行测试维护,因为创建对象的代码都集中在框架,而客户端代码是不参与的。

6. 组合胜过于继承

如果可能的话组合composition总是胜过继承。组合比继承拥有更多的灵活性。组合允许在运行时设置属性,并通过使用接口来实现,我们可以使用多态在类运行时改变类的行为,从而提供更好的接口实现。

7. LSP原则

根据里氏替换原则,子类型必须是可替代超类型,即方法或函数,它使用超类的类型必须能够与子类的对象时一样没有任何问题,如果一个类比子类有更多的功能,而子类可能不支持某些功能,这没有违反LSP。为了遵循LSP的设计原理,派生类或子类必须是增强功能不是减少它。

8.接口分离原则ISP

接口隔离原则要求:客户端不应该实现它不使用的接口,。当一个接口包含一个以上的功能而客户端只需要一个功能时容易出现这种情况,因为一旦你释放你的接口,你就不能改变它。

9. 面向接口而不是实现编程

面向接口编程而不是面向实现子类,这有灵活性的好处,特别是同样接口有不同实现子类时。

10.委托原则

不要自己做所有的事情,可以委托给相应的类去完成。

时间: 2024-11-08 20:40:54

java的10大设计原则的相关文章

设计模式——6大设计原则

1.单一职责原则 单一职责原则的英文名称是Single Responsibility Principle,简称是SRP. 单一职责的定义是:有且仅有一个原因引起类的变更. 单一职责原则要求一个接口或者一个类只有一个原因引起变化,也就是说一个接口或类只有一个职责,它就负责一件事情. 建议是:接口一定要做到单一职责,类的世界尽量做到只有一个原因引起变化.2.里氏替换原则 里氏替换原则的英文名称是Liskov Substitution Principle,简称是LSP. 里氏替换原则的定义:所有引用基

设计模式之6大设计原则

设计模式之6大设计原则 原则一:单一职责原则(Single Responsibility Principle SRP) 定义:There should never be more than one reason for a class to change.(应该有且仅有一个原因引起类的变更) 好处: 1.类的复杂性降低,实现什么职都有清晰明确的定义: 2.可读性高,负责性降低,当然可读性就提高了: 3.可维护性提高,可读性提高,自然就更容易维护了: 4.变更引起的风险降低,变更是必不可少的,如果

面向对象编程6大设计原则:单一职责原则

单一职责原则(Single  Responsibility Principle)简称SRP原则. 定义 应该有且仅有一个原因引起类的变更. 优点 可以降低类的复杂度,一个类只负责一项职责,其逻辑肯定要比负责多项职责简单的多: 提高类的可读性,提高系统的可维护性: 变更引起的风险降低,变更是必然的,如果单一职责原则遵守的好,当修改一个功能时,可以显著降低对其他功能的影响. 说明 单一职责原则不只是面向对象编程思想所特有的,只要是模块化的程序设计,都适用单一职责原则: 单一职责原则要根据项目的实际情

6大设计原则详解(一)

1. 单一职责原则(SRP) (1)概念 单一职责原则的定义是:应该有且只有一个原因引起类的改变,即一个类只负责一个职责. 比如让类C负责两个不同的职责:职责P1,P2.当由于职责P1需求发生改变而需要修改类C时,有可能会导致原本运行正常的职责P2功能发生故障. (2)举例 关于用户管理的一个类按如下类图来设计: 很显然,用户的属性和行为没有分开,按照单一职责原则,应该将其重新拆封成两个接口:用户属性接口IUserBO,用户行为接口IUserBiz. 分清职责之后的代码如下: ...... IU

6大设计原则之依赖倒置原则

依赖倒置原则: 包含三层含义: 高层模块不应该依赖低层模块,二者应该依赖抽象 抽象不应该依赖细节 细节应该依赖抽象 再精简些就是:其核心是面向接口编程 抽象:即抽象类和接口,抽象是对实现的约束,对依赖而言也是一种契约 细节:即具体的实现类,实现接口或继承抽象类所产生的类 依赖倒置就是通过抽象使各个类或模块间实现彼此独立,互不影响,实现模块间的松耦合. 依赖的三种实现方式: 构造函数注入 Setter依赖注入 接口注入 6大设计原则之依赖倒置原则

6大设计原则之开闭原则

开闭原则的定义 开闭原则的定义: 一个软件实体,如类.模块和函数应该对扩展开放,对修改关闭.即一个软件实体应该通过扩展来实现变化,而不是通过修改已有的代码来实现变化. 软件实体包括一下部分 项目或软件产品中按照一定的逻辑规则划分的模块 抽象和类 方法 注意: 开闭原则对扩展开放,对修改关闭,并不意味着不做任何修改,底层模块的变更,必然要有高层模块进行耦合,否则就是一个孤立无意义的代码片段 开闭原则的好处 开闭原则是一个最基本的原则,另外五个原则都是开闭原则的具体形态,是指导设计的工具和方法,而开

Java程序员应该了解的10个设计原则

引用: http://www.cnblogs.com/leehongee/archive/2012/03/18/2404760.html 面向对象设计原则是OOPS(Object-Oriented Programming System,面向对象的程序设计系统)编程的核心,但大多数Java程序员追逐像Singleton.Decorator.Observer这样的设计模式,而不重视面向对象的分析和设计.甚至还有经验丰富的Java程序员没有听说过OOPS和SOLID设计原则,他们根本不知道设计原则的好

设计模式————6大设计原则

一. 6大设计模式 Single Responsibility Principle : 单一职责原则 Liskov Substitution Principle     : 里氏替换原则 Dependence Inversion Principle :依赖倒置原则 Interface Segregation Principle  : 接口隔离原则 Law of Demeter           : 迪米特法则 Open Closed Principle               : 开闭原则

设计模式之_6大设计原则(转)

一.单一职责原则(Single Responsibility Principle) 定义:不要存在多于一个导致类变更的原因.通俗的说,即一个类只负责一项职责. 问题由来:类T负责两个不同的职责:职责P1,职责P2.当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障. 解决方案:遵循单一职责原则.分别建立两个类T1.T2,使T1完成职责P1功能,T2完成职责P2功能.这样,当修改类T1时,不会使职责P2发生故障风险:同理,当修改T2时,也不会使职责P1发生故