蚂蚁文库
换一换
首页 蚂蚁文库 > 资源分类 > PDF文档下载
 

软件的可维护性与可复用性

  • 资源ID:55713782       资源大小:813.45KB        全文页数:25页
  • 资源格式: PDF        下载权限:游客/注册会员    下载费用:10积分 【人民币10元】
快捷注册下载 游客一键下载
会员登录下载
三方登录下载: 微信快捷登录 QQ登录  
下载资源需要10积分 【人民币10元】
邮箱/手机:
温馨提示:
支付成功后,系统会自动生成账号(用户名和密码都是您填写的邮箱或者手机号),方便下次登录下载和查询订单;
支付方式: 微信支付    支付宝   
验证码:   换一换

 
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,既可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰   

软件的可维护性与可复用性

软件的可维护性与可复用性软件的可维护性与可复用性 模式模式 模式,即 Pattern。事实上确实是解决某一类问题的方法论。把解决某类问题的方法总结归 纳到理论高度,那确实是模式。Alexander 给出的经典定义是每个模式都描述了一个在我们 的环境中不断显现的问题,然后描述了该问题的解决方案的核心。通过这种方式,你能够许多次 地使用那些已有的解决方案, 无需再重复相同的工作。 模式有不同的领域, 建筑领域有建筑模式, 软件设计领域也有设计模式。当一个领域逐步成熟的时候,自然会显现专门多模式。 设计模式和面向对象的设计模式设计模式和面向对象的设计模式 设计模式〔Design pattern〕是一套被反复使用、多数人知晓的、通过分类编目的、代码 设计体会的总结。使用设计模式是为了可重用代码、让代码更容易被他人明白得、保证代码可靠 性。设计模式最初来源于建筑学。GOF〔〝四人帮〞,指 Gamma, Helm, Johnson namespace DesignPatterns.Creational { // 测试程序 class MainApp { public static void Main { // 抽象工厂 1 AbstractFactory factory1 new ConcreteFactory1; Client c1 new Clientfactory1; c1.Run; // 抽象工厂 2 AbstractFactory factory2 new ConcreteFactory2; Client c2 new Clientfactory2; c2.Run; // 等候用户输入 Console.Read; } } // 抽象工厂 abstract class AbstractFactory { public abstract AbstractProductA CreateProductA; public abstract AbstractProductB CreateProductB; } // 具体工厂 1 class ConcreteFactory1 AbstractFactory { public override AbstractProductA CreateProductA { return new ProductA1; } public override AbstractProductB CreateProductB { return new ProductB1; } } // 具体工厂 2 class ConcreteFactory2 AbstractFactory { public override AbstractProductA CreateProductA { return new ProductA2; } public override AbstractProductB CreateProductB { return new ProductB2; } } // 抽象产品 A,产品族中一个成员 abstract class AbstractProductA { } // 抽象产品 B,产品族中一个成员 abstract class AbstractProductB { public abstract void InteractAbstractProductA a; } // 具体产品 A1 class ProductA1 AbstractProductA { } // 具体产品 B1 class ProductB1 AbstractProductB { public override void InteractAbstractProductA a { Console.WriteLinethis.GetType.Name “ interacts with “ a.GetType.Name; } } // 具体产品 A2 class ProductA2 AbstractProductA { } // 具体产品 B2 class ProductB2 AbstractProductB { public override void InteractAbstractProductA a { Console.WriteLinethis.GetType.Name “ interacts with “ a.GetType.Name; } } // 客户端,使用环境 class Client { private AbstractProductA AbstractProductA; private AbstractProductB AbstractProductB; // 构造,注意通过构造传入抽象工厂 public ClientAbstractFactory factory { AbstractProductB factory.CreateProductB; AbstractProductA factory.CreateProductA; } public void Run { AbstractProductB.InteractAbstractProductA; } } } 输出结果为 ProductB1 interacts with ProductA1 ProductB2 interacts with ProductA2 生活中的实例 那个生活中的实例代码演示了一个电脑游戏, 在游戏中建立不同的动物世界会使用不同的工 厂。尽管创建动物的大陆工厂是不同的,然而动物之间的相互关系保持不变。 Real world code using Abstract Factory in C using System; namespace DesignPatterns.Creational.AbstractFactory.RealWorld { class MainApp { public static void Main { // 创建非洲大陆 ContinentFactory africa new AfricaFactory; AnimalWorld world new AnimalWorldafrica; world.RunFoodChain; // 创建美洲大陆 ContinentFactory america new AmericaFactory; world new AnimalWorldamerica; world.RunFoodChain; // 等待用户输入 Console.ReadKey; } } // 抽象工厂 abstract class ContinentFactory { // 创建食草动物 public abstract Herbivore CreateHerbivore; // 创建食肉动物 public ab

注意事项

本文(软件的可维护性与可复用性)为本站会员(wangxing101)主动上传,蚂蚁文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知蚂蚁文库(发送邮件至2303240369@qq.com或直接QQ联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们


网站客服QQ:2303240369

copyright@ 2017-2027 mayiwenku.com 

网站版权所有  智慧蚂蚁网络

经营许可证号:ICP备2024020385号



收起
展开