软件设计原则和设计模式

软件设计原则和设计模式

一、软件设计原则:

  • 开单代依接最合
1.开闭原则(开):
  • 提高软件系统的可复用性及可维护性
2.单一职责原则(单):
  • 降低类的复杂性,提高可读性,提高可维护性,降低变更引起的风险
3.里氏替换原则(代):
  • 如果一个软件实体适用于一个父类的话,那一定适用于其子类,子类型一定能替换父类,而程序逻辑不变。子类继承父类时,要保留父类的所有功能,可以新增属性与方法,但不是覆盖,除非抽像方法。即用子类替换父类来被操作时,结果不变,子类重写父类方法,入参范围应比父类大,返回范围比父类小。
  • 结束继承泛滥,加强程序健壮性,变更时做到更好的兼容性。提高维护性,扩展性,减少变更风险;
4.依赖倒置原则(依):
  • 减少类间的耦合性,提高系统稳定性,提高代码可读性和可维护性,降低修改程序所造成的风险
5.接口隔离原则(接):
  • 一个类的依赖应该建立在最小的接口上,尽量细化接口,接口中的方法尽量少;注意适度细化
6.迪米特法则(最):最少知道原则
  • 只和朋友交流。出现在成员变量,方法的输入,输出参数中的类成为朋友类,而现出在方法体内部的类不是朋友类;与业务无关的类,不能出现在输入或输出的参数中;
7.合成复用原则(合):
  • 尽量使用对象组合,聚合,而不是继承关系达到复用的目的。可以使系统更加灵活,降低类与类之间的耦合度。白箱复用。
  • 关联关系强弱,继承,较强,组合,弱,聚合

设计模式

  • 目的和作用:
1、写出优雅的代码
2、更好地重构项目
3、经典框架都在用设计模式解决问题
4、阅读经典代码
1、工厂模式:对象由提供的工厂创建,非由客户new出来
  • 1.简单工厂(Simple Factory Pattern)非23种模式:实现直接生产obj的工厂;简单,新增产品,需修改工厂;缺点:工厂类的职责相对过重,违背单一职责原则
  • 2.工厂方法模式(Fatory Method Pattern)<创建型设计模式>:工厂抽象化,具体工厂生产单一产品;新增产品,则新增生产该产品的具体工厂;缺点:类数量过多
  • 3.抽象工厂模式(Abastract Factory Pattern)<创建型设计模式>::在工厂方法模式基础上,将产品也抽象化(接口);客户定义产品和工厂,分别实现工厂和产品接口。新增产品,则新增具体产品和工厂的实现;更灵活
  • 缺点:新增产品,需修改工厂接口
2.单例模式:确保一个类在任何情况下都绝对只有一个实例,并提供一个全局访问点。单例模式是创建型模式。任何情况下,全局唯一
拆分业务:私有化构造器,线程安全,延迟加载,防序列化,防反射
分类:
  • 饿汉式:线程安全,内存占用高
  • 懒汉式:线程不安全,内存占用低
  • 注册式:Enum,类似饿汉式,占用高
  • 容器式:Ioc容器,线程不安全,占用低
  • ThreadLocal式(非全局唯一):线程内部安全,占用较低
原型模式(Prototype Pattern)创建型模式:需要使用java深克隆
  • 预先创建一个原型
  • 采用克隆(深克隆)复制原型,得到想要的对象
建造者模式(Builder Pattern):创建型模式 先准备零件,再装配工具
  • 初始化资源较多
  • 产生对象的过程较繁琐
  • 构造函数复杂
  • 循环体内产生大量对象
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值