![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 89
努力的Ethan
普通码农一枚
展开
-
总结心得:各设计模式使用场景
访问者模式:一个对象集合有多个元素,需要从多个不同且不相干角度挨个访问这些对象,如:人物对象集合[学生、老师],家长角度访问学生的成绩和老师的能力,校长角度访问学生人数和老师任课科目。模板方法模式:多个类的步骤存在相同的一些步骤,把这些步骤提取成抽象类,抽象类再提供抽象方法供子类来具体实现,调用抽象类的方法,实际调用的事子类重写的方法。状态模式:某个对象在不同状态会有不同行为,如电梯的运行状态,ATM机的各种状态、订单状态、角色的不同状态(如跑动,跳跃,攻击等)原创 2023-12-28 21:59:44 · 655 阅读 · 1 评论 -
设计模式——行为型模式
在面向对象程序设计过程中,程序员常常会遇到这种情况:设计一个系统时知道了算法所需的关键步骤,而且确定了这些步骤的执行顺序,但某些步骤的具体实现还未知,或者说某些步骤的实现与具体的环境相关。例如,去银行办理业务一般要经过以下4个流程:取号、排队、办理具体业务、对银行工作人员进行评分等,其中取号、排队和对银行工作人员进行评分的业务对每个客户是一样的,可以在父类中实现,但是办理具体业务却因人而异,它可能是存款、取款或者转账等,可以延迟到子类中实现。原创 2023-12-28 21:54:21 · 1048 阅读 · 2 评论 -
设计模式——结构型模式
代理模式使用代理对象来代替对真实对象的访问,这样就可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能代理模式能将客户端与目标对象分离,在一定程度上降低了系统的耦合度代理模式有静态代理和动态代理指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式现在有一个需求,需要创建不同的图形,并且每个图形都有可能会有不同的颜色。我们可以利用继承的方式来设计类的关系:我们可以发现有很多的类,假如我们再增加一个形状或再增加一种颜色,就需要创建更多的类。原创 2023-12-27 00:48:04 · 812 阅读 · 1 评论 -
设计模式——创建者模式
用一个已经创建的实例作为原型,通过Cloneable接口的clone()方法复制该原型对象来创建一个和原型对象相同的新对象。原型模式的克隆分为浅克隆和深克隆。浅克隆:创建一个新对象,新对象的属性和原来对象完全相同,对于非基本类型属性(引用类型),仍指向原有属性所指向的对象的内存地址。深克隆:创建一个新对象,属性中引用的其他对象也会被克隆,不再指向原有对象地址。Java中的Object类中提供了clone()方法来实现浅克隆。原创 2023-12-24 00:12:30 · 800 阅读 · 0 评论 -
软件设计原则
下面以搜狗输入法的皮肤为例介绍开闭原则的应用。原创 2023-12-24 00:02:01 · 972 阅读 · 0 评论