永发信息网

面向对象设计的6个设计原则最早谁提出的

答案:2  悬赏:40  手机版
解决时间 2021-01-22 21:18
面向对象设计的6个设计原则最早谁提出的
最佳答案
Booch最先描述了面向对象的软件开发方法的基础问题。

面向对象设计的六大基本原则:
1)开闭原则
2)里氏代换原则
3)依赖倒转原则
4)接口隔离原则
5)迪米特法则
6)合成/聚合复用原则
全部回答

1967年挪威计算中心的Kisten Nygaard和Ole Johan Dahl开发了Simula67语言,它提供了比子程序更高一级的抽象和封装,引入了数据抽象和类的概念,它被认为是第一个面向对象语言。
20世纪70年代初,Palo Alto研究中心的Alan Kay所在的研究小组开发出Smalltalk语言,之后又开发出Smalltalk-80,Smalltalk-80被认为是最纯正的面向对象语言,它对后来出现的面向对象语言,如Object-C,C++,Self,Eiffl都产生了深远的影响。
随着面向对象语言的出现,面向对象程序设计也就应运而生且得到迅速发展。
之后,面向对象不断向其他阶段渗透,1980年Grady Booch提出了面向对象设计的概念,之后面向对象分析开始。
1985年,第一个商用面向对象数据库问世。1990年以来,面向对象分析、测试、度量和管理等研究都得到长足发展。

面向对象设计的6个设计原则:



什单一职责:
一个类中的属性和方法要有很高的相关性,不然就拆开;如果一个类很庞大,则需要进一步细分职能,把相关性更高的归到一块。
开闭原则:
对扩展开放,对修改关闭。
极端要求就是:程序完成后,除非是修改错误,不然不能修改代码,只能扩展代码。
比如一个功能,有多种实现方法,即有多个类型,不要用if-else这种分支在一个类中去指定其类型;而是对接口编程,通过继承,把实现透明化,每增加一个类型就增加一个类。
想这么一个问题,每增加一个类型的时候,是修改原类添加一个else分支好还是实现一个新的与老代码无关的新类好?
下面这种实现就是对修改开放的结果,每次要增加一个类型,都得修改原有代码,导致原有系统可能被引入bug,需要被重新测试:

class Demo {        public static final int TYPE_A = 1;        public static final int TYPE_B = 2;        public static final int TYPE_C = 3;        public Demo(int type) {            if(type == 1) {                //act as TYPE_A            }            if(type == 2) {                //act as TYPE_B            }            if(type ==3) {                //act as TYPE_C            }
}
}


下面这种情况就是对修改关闭,通过对接口变成对扩张开放,新增一个类型不用修改原有代码:

interface Type {
}    class Demo2 {        private Type mType = null;        public Demo2() {
}        public void setType(Type type) {
mType = type;//act like what you assigned.        }
}    class TypeA implements Type {
}    
里氏替换原则:
开闭原则就是通过里氏替换来实现的,即对接口编程,建立抽象,具体的实现在运行时替换掉抽象,所有引用基类的地方必须能透明地使用其子类对象。
依赖导致原则:
就是调用者(客户代码)不依赖于被调用者(实现代码)的实现细节,而是依赖其抽象。
调用者不依赖被调用者的具体实现,而是依赖被调用者的抽象,这样被调用者后续可以被无感替换掉;
接口隔离原则:
接口定义要最小化,就是接口只专注一个领域,不要大而全,要小而细。
比如Closeable接口只管close,不管其实现类的其他事情,Comparable接口只管比较,不管其他的。
迪米特原则(least Knowledge Principle):
就是类与类的少了解,即类只需要知道依赖类必须知道的方法,其余的细节不要去了解;类的“朋友”要少,即类尽可能只跟必须要打交道的有依赖,不要依赖一大堆。
各大中小企业寻找软件定制开发及软件产品,网站建设等服务,就要找类似优客美这种拥有一流的技术团队与专业的服务人员,具备很强技术能力的正规软件公司。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
从众心理、求实心理引发的消费是健康的,应该
求张靓颖和张含韵个人资料
长安之星发动机是那个厂家的,
怎么样提高学习的记忆力?
东北木板需求大么
1千克棉花能提取多少精梳棉
用逐渐造句
一分,二分,五分硬币几几年的有收藏价值?
鹅下软蛋是怎么回事
香港新天王真皮沙发型号是645的卖多少钱
闪电十一人3王牙哪个守门员最好?真雷门三被
1只十1只二1双,3天十4天二1周,请问6十1O二?
从风水,卫生等方面考虑卫生间能做在厨房上面
-128的补码是多少 详解
日语中这句话对吗? 午前の授业はいつも十一
推荐资讯
蓖麻油有毒吗
中国工商银行(库庄镇文昌路和谐家园南50米中
单选题决定第二次大战后成立联合国的国际会议
人死了是不是很轻松?
扬子即热式电热水器好不好
圣境传说恐惧念头怎么交不了啊,就是给那个自
蓝若妮洗衣连锁(黑水旗舰店)地址有知道的么?
为什么一支球拍不可能适合所有的球手?
郁南葵洞离郁南高速路口有多远
盐城新火车站在哪里?
自然承诺地址在什么地方,我要处理点事!
科学思维常识(10分)有位心理学家进行一次简
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?