ASP.NET 设计模式中依赖倒置原则
1概述编辑
2意图编辑
3代码实现编辑
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
publicclassHondaCar{publicvoidRun(){Console.WriteLine("本田开始启动了");}publicvoidTurn(){Console.WriteLine("本田开始转弯了");}publicvoidStop(){Console.WriteLine("本田开始停车了");}}publicclassFordCar{publicvoidRun(){Console.WriteLine("福特开始启动了");}publicvoidTurn(){Console.WriteLine("福特开始转弯了");}publicvoidStop(){Console.WriteLine("福特开始停车了");}}publicclassAutoSystem{publicenumCarType{Ford,Honda};privateHondaCarhcar=newHondaCar();privateFordCarfcar=newFordCar();privateCarTypetype;publicAutoSystem(CarTypetype){this.type=type;}privatevoidRunCar(){if(type==CarType.Ford){fcar.Run();}else{hcar.Run();}}privatevoidTurnCar(){if(type==CarType.Ford){fcar.Turn();}else{hcar.Turn();}}privatevoidStopCar(){if(type==CarType.Ford){fcar.Stop();}else{hcar.Stop();}}} |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
publicclassAutoSystem{publicenumCarType{Ford,Honda,Bmw};HondaCarhcar=newHondaCar();FordCarfcar=newFordCar();BmwCarbcar=newBmwCar();privateCarTypetype;publicAutoSystem(CarTypetype){this.type=type;}privatevoidRunCar(){if(type==CarType.Ford){fcar.Run();}elseif(type==CarType.Honda){hcar.Run();}elseif(type==CarType.Bmw){bcar.Run();}}privatevoidTurnCar(){if(type==CarType.Ford){fcar.Turn();}elseif(type==CarType.Honda){hcar.Turn();}elseif(type==CarType.Bmw){bcar.Turn();}}privatevoidStopCar(){if(type==CarType.Ford){fcar.Stop();}elseif(type==CarType.Honda){hcar.Stop();}elseif(type==CarType.Bmw){bcar.Stop();}}} |
4结构图编辑

|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
publicinterfaceICar{voidRun();voidTurn();voidStop();}publicclassBmwCar:ICar{publicvoidRun(){Console.WriteLine("宝马开始启动了");}publicvoidTurn(){Console.WriteLine("宝马开始转弯了");}publicvoidStop(){Console.WriteLine("宝马开始停车了");}}publicclassFordCar:ICar{publicvoidRun(){Console.WriteLine("福特开始启动了");}publicvoidTurn(){Console.WriteLine("福特开始转弯了");}publicvoidStop(){Console.WriteLine("福特开始停车了");}}publicclassHondaCar:ICar{publicvoidRun(){Console.WriteLine("本田开始启动了");}publicvoidTurn(){Console.WriteLine("本田开始转弯了");}publicvoidStop(){Console.WriteLine("本田开始停车了");}}publicclassAutoSystem{privateICaricar;publicAutoSystem(ICaricar){this.icar=icar;}privatevoidRunCar(){icar.Run();}privatevoidTurnCar(){icar.Turn();}privatevoidStopCar(){icar.Stop();}} |
ASP.NET 设计模式中依赖倒置原则的更多相关文章
- 北风设计模式课程---依赖倒置原则(Dependency Inversion Principle)
北风设计模式课程---依赖倒置原则(Dependency Inversion Principle) 一.总结 一句话总结: 面向对象技术的根基:依赖倒置原则(Dependency Inversion ...
- C#软件设计——小话设计模式原则之:依赖倒置原则DIP
前言:很久之前就想动笔总结下关于软件设计的一些原则,或者说是设计模式的一些原则,奈何被各种bootstrap组件所吸引,一直抽不开身.群里面有朋友问博主是否改行做前端了,呵呵,其实博主是想做“全战”, ...
- 《设计模式》-原则三:依赖倒置原则(DIP)
这几天晚上回来都去玩了!没有坚持学习.真的好惭愧! 非常自责 后面一定要坚持 一气呵成 争取每天学一点,把这个学完. 今天主要是看了一下 设计模式中的 原则三: 依赖倒置原则(DIP) 官方是这样 ...
- zt 设计模式六大原则(3):依赖倒置原则
下面说法对不对? 父类将算法(逻辑)封装起来,子类实现细节:这个就叫DIP(依赖倒置:Dependency Inversion Principles),模板模式就是这个原则的实现.如果在父类中加一个t ...
- Java设计模式(2:单一职责原则和依赖倒置原则详解)
一.单一职责原则 不要存在多于一个导致类变更的原因.简单来说,就是一个Class/Interface/Method只负责一项职责. 这句话最为重要的就是这一段:一个Class/Interface/Me ...
- 【设计模式六大原则3】依赖倒置原则(Dependence Inversion Principle)
定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象:抽象不应该依赖细节:细节应该依赖抽象. 问题由来:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成.这种场景下,类 ...
- [设计模式]<<设计模式之禅>>关于依赖倒置原则
依赖倒置原则(Dependence Inversion Principle,DIP)这个名字看着有点别扭,“依赖”还“倒置”,这到底是什么意思?依赖倒置原则的原始定义是 High level modu ...
- 设计模式值六大原则——依赖倒置原则 (DIP)
依赖倒置原则(Dependence Inversion Principle,DIP)的原始定义: 高层模块不应该依赖底层模块,两者都应该依赖其抽象: 抽象不应该依赖细节: 细节应该依赖抽象. 依赖倒置 ...
- 设计模式——依赖倒置原则实例(PHP实现)
<?php /** * 设计模式--依赖倒置原则实例 * Created by DannyWang * jue.wang@yulore.com * 2015-05-05 */ abstract ...
随机推荐
- ifconfig命令
许多windows非常熟悉ipconfig命令行工具,它被用来获取网络接口配置信息并对此进行修改.Linux系统拥有一个类似的工具,也就是ifconfig(interfaces config).通常需 ...
- Curl之Post Json
curl Post Json $ curl -i -X POST -H "'Content-type':'application/x-www-form-urlencoded', 'chars ...
- Java笔记(十三)……面向对象III继承(inheritance)
继承概述 继承概述 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继那个类即可. 多个类可以称为子类,单独这个类称为父类或者超类. 子类可以直接访 ...
- Javascript的简介和使用
摘要:先讨论JavaScript的由来和一些比较容易混淆的概念,又讨论了JavaScript的实现,紧接着说明了在网页中怎么有效地更好地引入js代码. JavaScript的由来 是从一个简单的输入验 ...
- EM 算法
这个暂时还不太明白,先写一点明白的. EM:最大期望算法,属于基于模型的聚类算法.是对似然函数的进一步应用. 我们知道,当我们想要估计某个分布的未知值,可以使用样本结果来进行似然估计,进而求最大似然估 ...
- 问题.NETSystem.Data.OleDb.OleDbException 操作必须使用一个可更新的查询
问题:System.Data.OleDb.OleDbException 操作必须使用一个可更新的查询 问题现象:用asp.net连access数据库,查询可以,插入数据报错.在.NET中F5可以使用方 ...
- 大型机汇编(mainframe assembler/HLASM)之COBOL解惑
IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. ENVIRONMENT DIVISION. ...
- [SCOI2005]互不侵犯King
题目描述 在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案.国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子. ——by洛谷 https://www. ...
- cocos2d-x 绘制基本图元
转自:http://4137613.blog.51cto.com/4127613/754729 第一部分:基本图形绘制 cocos2dx封装了大量opengl函数,用于快速绘制基本图形,这些代码的 ...
- iOS开发中一些常用的方法
1.压缩图片 #pragma mark 处理图片 - (void)useImage:(UIImage *)image { NSLog(@"with-----%f heught-----%f& ...