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 ...
随机推荐
- [codevs1287]矩阵乘法
题目描述 Description 小明最近在为线性代数而头疼,线性代数确实很抽象(也很无聊),可惜他的老师正在讲这矩阵乘法这一段内容.当然,小明上课打瞌睡也没问题,但线性代数的习题可是很可怕的.小明希 ...
- android获取屏幕分辨率
DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); dm. ...
- 运算符优先级 (Transact-SQL)
当一个复杂的表达式有多个运算符时,运算符优先级决定执行运算的先后次序. 执行的顺序可能严重地影响所得到的值. 运算符的优先级别如下表中所示. 在较低级别的运算符之前先对较高级别的运算符进行求值.
- linux 内存管理——内核的shmall 和shmmax 参数
内核的 shmall 和 shmmax 参数 SHMMAX= 配置了最大的内存segment的大小 ------>这个设置的比SGA_MAX_SIZE大比较好. SHMMIN= 最小的内存seg ...
- JS实现的一个验证码,可以在前端验证后在提交action
js实现的一个验证码功能,可以在前端判断验证码输入是否正确 输入的邮箱格式是否正确 验证成功后才提交action到后台 <!DOCTYPE html PUBLIC "-//W3C//D ...
- Hadoop学习记录(2)|HDFS shell命令|体系结构
HDFS的shell 调用文件系统(FS)shell命令使用hadoop fs的形式 所有的FS shell命令使用URI路径作为参数. URI格式是scheme://authority/path.H ...
- Import the Add Email and Post Configuration to the SiteMap managed solution -Dynamices CRM
We have prepared a managed solution named Add Email and Post Configuration to SiteMap that you can i ...
- java_list<String> string[]拼接json
private String getJsonStr(List<String> jsonKeyList, String[] values){ String jsonStr = "{ ...
- 用普通PC主板的蜂鸣器给树莓派(RPI)加个报警器
这两天有点时间,捣鼓了下那闲置好久的树莓派,把普通PC主板的蜂鸣器作为树莓派的报警器用. Raspberry Pi有许多的GPIO(General Purpose Input Output:通用输入/ ...
- [Whole Web, Node.js, PM2] Restarting your node.js app on code change using pm2
Aadd watch to the config.json file: { "apps": [{ "name": "App1", " ...