代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
C#
】
使用委派代替继承
作者:
天哲
/ 发布于
2016/6/12
/
675
#region 使用委派代替继承 /*概念:本文中的“使用委派代替继承”是指在根本没有父子关系的类中使用继承是不合理的, 可以用委派的方式来代替。*/ /*正文:如下代码所示,Child 和 Sanitation (公共设施)是没有逻辑上的父子关系,因为小 孩不可能是一个公共设施吧!所以以下这种继承就显得不合理*/ #region 1.继承方式 (应用场景不合理) ///// <summary> ///// 公共设施类 ///// </summary> //public class Sanitation //{ // public string WashHands() // { // return "Cleaned!"; // } //} ///// <summary> ///// 小孩 ///// </summary> //public class Child : Sanitation //{ //} #endregion #region 2.委派方式 /*重构后的代码如下,把Sanitation 委派到Child 类中,从而可以使用WashHands 这个方 法,这种方式我们经常会用到,其实IOC 也使用到了这个原理,可以通过构造注入和方法 注入等。*/ /*总结:这个重构是一个很好的重构,在很大程度上解决了滥用继承的情况,很多设计模式也 用到了这种思想(比如桥接模式、适配器模式、策略模式等)。*/ /// <summary> /// 公共设施 /// </summary> public class Sanitation { public string WashHands() { return "Cleaned!"; } } /// <summary> /// 小孩 /// </summary> public class Child { private Sanitation Sanitation { get; set; } public Child() { Sanitation = new Sanitation(); } public string WashHands() { return Sanitation.WashHands(); } } #endregion #endregion
试试其它关键字
同语言下
.
C#实现的html内容截取
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
.
实现对图片上传的接收
.
去除字符串中的空格,回车,换行符转变成‘;’在按‘
.
按照回车换行符分割字符串
.
文件MD5码 比较,检测文件是否一样
可能有用的
.
C#实现的html内容截取
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
.
实现对图片上传的接收
.
去除字符串中的空格,回车,换行符转变成‘;’在按‘
.
按照回车换行符分割字符串
.
文件MD5码 比较,检测文件是否一样
天哲
贡献的其它代码
(
13
)
.
JAVA 驼峰与下划线的属性名互相转换
.
获取远程文件HTML
.
判断字符串是否为数值型字符串
.
获取星期一,获取第几周
.
aspx与ascx值传递与设置
.
把同一字段里的多行数据用一行显示
.
固定页脚
.
使用委派代替继承
.
禁用右键单击上下文菜单
.
Jquery- ID与Class之间转换
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3