架构中的设计原则

1. 单一职责原则 Single Responsibility Principle

系统中每一个类都应该只有一个单独的职责

2. 里氏替换原则 Liskov Substitution Principle

任何父类出现的地方都可以用它的子类来替代

3. 依赖注入原则 Dependence Inversion Principle

要依赖于抽象,不要依赖于具体的实现

4. 接口分离原则 Interface Segregation Principle

不应该强迫客户程序依赖他们需要使用的方法

5. 迪米特原则 Law of Demeter

一个对象应该对其他对象尽可能少地了解

6. 开闭原则 Open for Extension, Closed for Modification

一个对象对扩展开放,对修改关闭

时间: 2024-08-10 15:10:10

架构中的设计原则的相关文章

架构中的设计原则之接口分离原则(ISP) - 《java开发技术-在架构中体验设计模式和算法之美》

接口分离原则 接口分离原则的核心思想是:不应该强迫客户程序依赖它们不需要使用的方法.英文缩写ISP,即Interface Segregation Principle.其实接口分离原则的意思就是:一个接口不需要提供太多的行为,一个接口应该只提供一种对外的功能,不应该 把所有的操作都封装到一个接口中. 这里的"接口"指的不仅仅是通过interface关键字定义的接口,接口分为如下两种. 对象接口.java中声明的一个类,通过new关键字产生的一个实例,它是对一个类型的事物的描述,这也是一种

架构中的设计原则之开闭原则(OCP) - 《java开发技术-在架构中体验设计模式和算法之美》

开闭原则OCP(Open for Extension,Closed for Modification).开闭原则的核心思想是:一个对象对扩张开放,对修改关闭. 其实开闭原则的意思就是:对类的改动是通过增加代码进行的,而不是改动现有的代码.也就是说,软件开发人员一旦写出了可以运行的代码,就不应该去改变它,而是要保证它能一直运行下去,如何才能做到这一点呢?这就需要借助于抽象和多态,即把可能变化的内容抽象出来,从而使抽象的部分是相对稳定,而具体的实现层是可以改变和扩展的. 根据开闭原则,我们改变一个软

Hbase中rowkey设计原则

Hbase中rowkey设计原则 1.热点问题 在某一时间段,有大量的数据同时对一个region进行操作 2.原因 对rowkey的设计不合理 对rowkey的划分不合理 3.解决方式 rowkey是hbase的读写唯一标识 最大长度是64KB. 4.核心原则 设计必须按照业务需求进行设计 5.长度原则 经验:10~100字节可以 官方:16字节,因为操作系统时8字节进行存储 6.散列原则 划分region是按照rowkey的头部进行划分. 有几种方式: )组合字段 id+timestamp )

设计模式-7中常用设计原则简述

7种常用的面向对象设计原则 设计原则名称 定  义 单一职责原则 (Single Responsibility Principle, SRP) 一个类只负责一个功能领域中的相应职责 开闭原则 (Open-Closed Principle, OCP) 软件实体应对扩展开放,而对修改关闭 里氏代换原则 (Liskov Substitution Principle, LSP) 所有引用基类对象的地方能够透明地使用其子类的对象 依赖倒转原则 (Dependence  Inversion Principl

设计模式中的一些设计原则

七大著名设计原则 1.单一职责原则(SRP - Single Responsibility Principle) 就一个类而言,应该仅有一个引起它变化的原因,功能要单一 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力,这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏 软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离,如果你能够想到多于一个的动机去改变一个类,那么这个类就具备有多于一个的职责 2.开放-封

用一个生活中的例子来说明设计原则

用生活中的例子来说明设计原则.你要不要来挑战一下 假设你开发了一个俄罗斯方块,如果你全部写在一个main方法里面,那他将非常难以维护,但是你可以一单招最基本的原则,将页面渲染和俄罗斯方块的逻辑分开,那么你就有一个 移植性很强的程序,你可以直接从pc移植到andori,成本很低,这就是单一职责带来的好处. 你会修电脑么,你会当你内存不足的时候更换内存条么,为什么各个不同厂商生产的cpu都可以被你使用,为什么电脑这么复杂的东西,你却可以进行简单的修理,而体积更小的收音机你就不行, 因为各个电脑厂商之

[转载] 一些软件设计原则

转载地址:http://blog.jobbole.com/685/ 下面这些原则,不单单只是软件开发,可以推广到其它生产活动中,甚至我们的生活中. Don’t Repeat Yourself(DRY) DRY是一个最简单的法则,也是最容易被理解的.但它也可能是最难被应用的(因为要做到这样,我们需要在泛型设计上做相当的努力,这并不是一件容易 的事).它意味着,当我们在两个或多个地方的时候发现一些相似的代码的时候,我们需要把他们的共性抽象出来形一个唯一的新方法,并且改变现有的地方的代码 让他们以一些

一些软件设计原则【转载】

本文一定要转,总结得非常好, 设计必读. 转自陈皓老师的 <一些软件设计的原则>,根据自己的理解调整了下顺序,少部分字句做了修改. 一个好的程序员通常由其操作技能.知识水平,经验层力和能力四个方面组成.在这里想和大家说说设计中的一些原则,我认为这些东西属于长期经验总结出来的知识.这些原则,每一个程序员都应该了解.但是请不要教条主义,在使用的时候还是要多多考虑实际情况.其实,下面这些原则,不单单只是软件开发,可以推广到其它生产活动中,甚至我们的生活中. 根本设计原则 根本设计原则是我认为的最最基

(转载)Java程序员应当知道的10个面向对象设计原则

面向对象设计原则是OOPS编程的核心, 但我见过的大多数Java程序员热心于像Singleton (单例) . Decorator(装饰器).Observer(观察者) 等设计模式,而没有把足够多的注意力放在学习面向对象的分析和设计上面.学习面向对象编程像"抽象"."封装"."多态"."继承" 等基础知识是重要的,但同时为了创建简洁.模块化的设计,了解这些设计原则也同等重要.我经常看到不同经验水平的java程序员,他们有的不知