收藏 分销(赏)

软件架构设计原则与模式PPT.ppt

上传人:天**** 文档编号:12065532 上传时间:2025-09-05 格式:PPT 页数:36 大小:1.86MB 下载积分:12 金币
下载 相关 举报
软件架构设计原则与模式PPT.ppt_第1页
第1页 / 共36页
软件架构设计原则与模式PPT.ppt_第2页
第2页 / 共36页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,二级,三级,四级,五级,#,软件设计原则与模式,2015.08.11,1,目录,一、软件设计原则,二、设计模式介绍,三、设计书籍推荐,2,软件设计原则,一、,3,单一职责原则,定义:,一个模块(类、函数)只负责一项职责,益处:,1.,降低模块复杂度,提高可读性、可维护性,2.,降低变更的频率、变更引起的风险,4,依赖倒置原则,定义:,高层模块不应依赖底层模块,底层模块也不应依赖高层模块,二者都应该依赖抽象,益处:,1.,提升系统的结构稳定性,2.,低耦合,5,里氏替换原则,定义:,所有引用基类的地方必须能透明地使用其子类的对象,益处:,1.,提升结构稳定性,2.,提高代码可读性、可维护性,6,接口隔离原则,定义:,客户端不应该依赖它不需要的接口,益处:,1.,提升结构稳定性,2.,提高代码可读性、可维护性,7,开闭原则,定义:,当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化,益处:,1.,提升系统运行稳定性,2.,减少测试、修改等工作量,8,设计模式介绍,二、,9,什么是设计模式,软件设计中的成功经验,软件设计中的交流语言,特定的软件设计上下文中,针对特定问题的解决方案,可复用软件开发的基础,10,如何创建对象?,1.new xxx(),2.,简单工厂(,Simple Factory,),3.,工厂方法(,Factory Method,),11,new xxx(),最简单做法,看到了,new,,就会想到“具体”。,当有一群相关的具体类时,通常会写出以下的代码:,Pizza oderPizza(String type),Pizza pizza;,if(type.equals(“cheese”),pizza=new CheesePizza();,else if(type.equals(“greek”),pizza=new GreekPizza();,pizza.prepare();,pizza.bake();,pizza.cut();,12,工厂(,Factory,),Pizza oderPizza(String type),Pizza pizza;,pizza.prepare();,pizza.bake();,pizza.cut();,创建一个部件,来专门创建,Pizza,。我们称这个部件为工厂,13,简单工厂(,Simple Factory,),public class SimplePizzaFactory(String type),Pizza pizza;,if(type.equals(“cheese”),pizza=new CheesePizza();,else if(type.equals(“greek”),pizza=new GreekPizza();,return pizza;,14,使用简单工厂后,15,使用简单工厂后,16,简单工厂(,Simple Factory,),LNPizzaFactory lnFactory=new LNPizzaFactory();,PizzaStore lnStore=new PizzaStore(lnFactory);,lnStore.orderPizza(cheese);,SXPizzaFactory lnFactory=new SXPizzaFactory();,PizzaStore sxStore=new PizzaStore(sxFactory);,sxStore.orderPizza(cheese);,17,工厂方法(,Factory Method,),意图:,定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。,适用性,当一个类不知道它所必须创建的对象的类的时候。,当一个类希望由它的子类来指定它所创建的对象的时候。,当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。,18,工厂方法(,Factory Method,),19,工厂方法(,Factory Method,),20,工厂方法(,Factory Method,),创建者类图,21,工厂方法(,Factory Method,),22,工厂方法:产品本身,Public abstract class Pizza,String name;,void prepare(),void bake(),void cut(),23,工厂方法(,Factory Method,),创建者类,24,工厂方法(,Factory Method,),产品类,25,工厂方法(,Factory Method,),26,依赖与依赖倒置,27,依赖与依赖倒置,28,依赖倒置原则,定义:,高层模块不应依赖底层模块,底层模块也不应依赖高层模块,二者都应该依赖抽象,29,依赖与依赖倒置,30,其它常用的模式,单例(,Singleton,),适配器(,Adapter,),桥接(,Bridge,),门面(,Facade,),代理(,Proxy,),观察者(,Observer,),策略(,Strategy,),31,两个忠告,设计模式的作用是解决问题,而不是为了模式而模式,我们研究设计模式的目的是实用,不是为了学术研究,32,软件设计书籍,三、,33,软件设计书籍推荐,敏捷软件开发:原则、模式与实践(,Robert C Martin,),Head First,设计模式,设计模式:可复用软件软件设计的基础(,GoF,),代码大全(第二版)(,Steve McConnell,),实现领域驱动开发(,Vanghn Vernon,),企业应用架构模式(,Martin Fowler,),34,介绍了软件设计的几个原则:单一职责、依赖倒置、里氏替换、接口隔离和开闭原则,介绍了简单工厂模式、工厂方法模式的使用,列举了一些常用的设计模式,推荐了基本软件设计方面的书籍,35,36,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服