乌拉拉
fupansrf
啦啦啦
关注数: 45
粉丝数: 22
发帖数: 915
关注贴吧数: 45
啦啦啦啦啦啦啦
一直一直一直一直
啦啦啦啦啦啦啦
乌拉乌拉乌拉
正常贴子测回复,手白ugc
发个大图试试吧 发个大图试试
啦啦啦啦啦
啦啦啦啦啦啦
又来发图了 我就来发图了
啦啦啦啦啦啦
啦啦啦啦啦啦 啦啦啦啦啦
发个图片来
又来发图片了
啦啦啦啦啦啦啦
啦啦啦啦啦啦
啦啦啦啦啦啦啦
啦啦啦啦啦
啦啦啦啦啦啦
啦啦啦啦啦
啦啦啦啦啦啦啦
啦啦啦啦啦啦
啦啦啦啦啦
我来试试主贴落库 @雷电将军
啦啦啦啦啦 啊啦啦啦啦
啦啦啦啦啦啦
啦啦啦啦啦啦啦啦
啦啦啦啦啦啦啦啦啦
啦啦啦啦啦啦 啦啦啦啦啦
啦啦啦啦啦啦 啦啦啦啦啦
啦啦啦啦啦
啦啦啦啦啦啦
啦啦啦啦啦啦啦
啦啦啦啦啦啦啦啦
啦啦啦啦啦啦
啦啦啦啦啦啦 啦啦啦啦啦
发个帖子呀 发个帖子杯
发个帖子吧 我来发个帖子
啦啦啦啦啦啦 测试一下测试下
啦啦啦啦啦 啦啦啦啦
发帖发帖发帖 发帖发帖发帖会弹什么
松明名字我好 #国足主场激战澳大利亚##订婚强奸案男方追讨转账有戏吗##甲亢哥中国行点名想见大张伟##如何评价AL栽在RNG手上##T1粉丝开卡车怒骂CEO赵麻石##偷窥题材游戏监寓被疯狂举报#
你想活出怎样的人生 @贴吧包打听 @娜娜 @DeepSeek(孙吧老哥版) @进来挨骂
召唤包打听 测试下包打听回复我@贴吧包打听
啦啦啦啦啦啦 @贴吧大艺术家 @贴吧视频号官方
求助求助求助 快了快了
啦啦啦啦啦啦 啦啦啦啦啦啦啦啦
啦啦啦啦啦 啦啦啦啦啦啦啦
求助一下呢 求助一下呢
哦舅舅舅舅舅舅舅舅 舅舅舅舅舅舅舅
啦啦啦啦啦啦啦啦 啦啦啦啦啦啦啦啦
最新的云缨皮肤怎么获取 啊啊啊,求助
你是你是你是
《设计模式》第5章 可复用面向对象软件的基础 5.9-5.11 策略模式 通过定义一系列算法,并将每个算法封装在一个单独的策略类中,达到算法可以互相替换,并且算法的变化不会影响到使用算法的客户端。 在策略模式中,客户端将所需策略传递给上下文,上下文通过通用接口与策略交互,从而实现不同的功能。 应用场景: 1.系统需要动态地在几种算法中选择一种 2. 隔离业务逻辑与算法实现
设计模式-可复用面向对象软件的基础 5.6-5.8 备忘录模式允许对象创建自身状态的快照,并在需要时恢复到以前的状态。 通过将对象状态的副本存储在名为 备忘录 的特殊对象中来避免其他对象从外部复制对象的状态。 备忘录模式还限制了对备忘录内容的访问,只有创建备忘录的对象可以获取快照中的原始状态,其他对象只能获取快照的元数据。 在备忘录模式中,负责人 负责保存备忘录,但不能修改储存在备忘录中的状态,但是原发器对象可以随时恢复其以前的状态。 在实际应用中,例如文字编辑器,可以创建一个历史类作为负责人,每次执行操作前都会在历史类中添加一个备忘录。当需要撤销操作时,历史类会取出最近的备忘录并让编辑器进行回滚。 应用场景: 文本编辑器的撤销操作; 数据库系统的事务管理:在数据库系统中,事务必须是原子的,即要么完全成功,要么完全失败。在执行事务过程中,如果发生错误,系统可以利用备忘录模式恢复到事务开始之前的状态。 Git:可以保存项目的不同版本状态,当需要回滚到以前的版本时,可以通过备忘录恢复到之前的状态。
设计模式-可复用面向对象软件的基础 5.4-5.5 5.4 迭代器模式 迭代器模式提供了一种方法来访问集合对象中的各个元素,而又不需要暴露该对象的内部表示。 把迭代的过程从业务逻辑中分离出来,即使不关心对象的内部构造,也可以按顺序访问其中的每个元素。 主要包括以下角色: 迭代器(Iterator):迭代器定义访问和遍历元素的接口,一般包含 hasNext(是否存在下一个元素)和 next(获取下一个元素)等方法。 具体迭代器(Concrete Iterator):具体迭代器实现迭代器接口,对聚合对象进行遍历访问。 聚合对象(Aggregate):聚合对象是存放元素的容器,一般提供一个创建迭代器的方法。 具体聚合对象(Concrete Aggregate):具体聚合对象实现创建迭代器的方法,返回一个具体迭代器实例。
设计模式——代理模式 代理模式是一种设计模式,它可以通过创建一个代理对象来控制对原始对象的访问。 代理模式的应用场景: 延迟初始化:可以在需要时才创建对象; 访问控制:可以控制特定客户端使用服务对象; 本地执行远程服务:可以通过网络传递客户端请求; 记录日志请求:可以保存对服务对象的请求历史; 缓存请求结果:可以缓存大体积的返回结果; 智能引用:可以在没有客户端使用某个对象时销毁该对象。
啦啦啦啦啦啦啦啦啦啦啦啦
设计模式-可复用面向对象软件的基础 4.1~4.4 适配器模式(Adapter Pattern) 应用场景: 当需要将一个类的接口转换成客户端所期望的另一个接口时。 当需要使用一些已经存在的类,而这些类的接口与当前系统不兼容时。 在使用第三方库或框架时,其提供的接口与项目中的接口不一致,可以通过适配器模式进行转换。 优点: 提高了系统的灵活性和可扩展性。 降低了系统的耦合度,使得系统更加容易维护和升级。 使得原本不能一起工作的类能够协同工作。 缺点: 增加了系统的复杂性,因为需要引入额外的适配器类。 如果过度使用适配器模式,可能会导致系统变得难以理解和维护。 桥梁模式(Bridge Pattern) 应用场景: 当一个类存在两个或多个独立变化的维度时。 当不希望因为某个维度的变化而影响到另一个维度的设计时。 在实现抽象和具体类的分离时,可以使用桥梁模式。 优点: 提高了系统的可扩展性,因为可以在不修改抽象类的情况下,增加新的具体实现。 降低了系统的耦合度,因为抽象和具体实现之间是通过接口进行通信的。 使得系统更加灵活,可以轻松地更换具体实现。 缺点: 增加了系统的复杂性,因为需要引入额外的抽象层和接口。 如果设计不当,可能会导致系统变得难以理解和维护。 组合模式(Composite Pattern) 应用场景: 当需要表示对象的部分-整体层次结构时。 当希望客户端能够忽略组合对象与单个对象的差异,以统一的方式处理它们时。 在需要构建复杂的树形结构时,可以使用组合模式。 优点: 使得客户端能够以统一的方式处理单个对象和组合对象。 提高了系统的可扩展性,因为可以在不修改现有代码的情况下,增加新的组件。 简化了客户端代码,因为客户端不需要区分处理的是单个对象还是组合对象。 缺点: 在设计组合对象时,需要仔细考虑接口的设计,以确保其能够正确地表示部分-整体的关系。 如果组合结构过于复杂,可能会导致系统变得难以理解和维护。 装饰者模式(Decorator Pattern) 应用场景: 当需要动态地给一个对象添加一些额外的职责时。 当这些额外的职责不能通过继承的方式来实现时(因为继承会导致类的爆炸)。 在需要扩展一个类的功能时,可以使用装饰者模式。 优点: 提高了系统的灵活性和可扩展性,因为可以在不修改原有类的情况下,增加新的功能。 避免了类的爆炸,因为不需要为每一个功能都创建一个子类。 使得系统更加容易理解和维护,因为装饰者和被装饰者之间是通过组合关系来连接的。 缺点: 增加了系统的复杂性,因为需要引入额外的装饰者类。 如果过度使用装饰者模式,可能会导致系统变得难以理解和维护。
设计模式-可复用面向对象软件的基础4.1-4.4 适配器模式(Adapter Pattern) 应用场景: 当需要将一个类的接口转换成客户端所期望的另一个接口时。 当需要使用一些已经存在的类,而这些类的接口与当前系统不兼容时。 在使用第三方库或框架时,其提供的接口与项目中的接口不一致,可以通过适配器模式进行转换。 优点: 提高了系统的灵活性和可扩展性。 降低了系统的耦合度,使得系统更加容易维护和升级。 使得原本不能一起工作的类能够协同工作。 缺点: 增加了系统的复杂性,因为需要引入额外的适配器类。 如果过度使用适配器模式,可能会导致系统变得难以理解和维护。 桥梁模式(Bridge Pattern) 应用场景: 当一个类存在两个或多个独立变化的维度时。 当不希望因为某个维度的变化而影响到另一个维度的设计时。 在实现抽象和具体类的分离时,可以使用桥梁模式。 优点: 提高了系统的可扩展性,因为可以在不修改抽象类的情况下,增加新的具体实现。 降低了系统的耦合度,因为抽象和具体实现之间是通过接口进行通信的。 使得系统更加灵活,可以轻松地更换具体实现。 缺点: 增加了系统的复杂性,因为需要引入额外的抽象层和接口。 如果设计不当,可能会导致系统变得难以理解和维护。 组合模式(Composite Pattern) 应用场景: 当需要表示对象的部分-整体层次结构时。 当希望客户端能够忽略组合对象与单个对象的差异,以统一的方式处理它们时。 在需要构建复杂的树形结构时,可以使用组合模式。 优点: 使得客户端能够以统一的方式处理单个对象和组合对象。 提高了系统的可扩展性,因为可以在不修改现有代码的情况下,增加新的组件。 简化了客户端代码,因为客户端不需要区分处理的是单个对象还是组合对象。 缺点: 在设计组合对象时,需要仔细考虑接口的设计,以确保其能够正确地表示部分-整体的关系。 如果组合结构过于复杂,可能会导致系统变得难以理解和维护。 装饰者模式(Decorator Pattern) 应用场景: 当需要动态地给一个对象添加一些额外的职责时。 当这些额外的职责不能通过继承的方式来实现时(因为继承会导致类的爆炸)。 在需要扩展一个类的功能时,可以使用装饰者模式。 优点: 提高了系统的灵活性和可扩展性,因为可以在不修改原有类的情况下,增加新的功能。 避免了类的爆炸,因为不需要为每一个功能都创建一个子类。 使得系统更加容易理解和维护,因为装饰者和被装饰者之间是通过组合关系来连接的。 缺点: 增加了系统的复杂性,因为需要引入额外的装饰者类。 如果过度使用装饰者模式,可能会导致系统变得难以理解和维护。
设计模式-可复用面向对象软件的基础 3.3-3.6 工厂方法模式是一种创建型设计模式, 其在父类中提供一个创建对象的方法, 允许子类决定实例化对象的类型。 工厂方法模式建议使用特殊的工厂方法来创建对象,而不是直接调用对象的构造函数。它允许子类重写工厂方法,从而改变创建的产品类型。 只有当产品具有共同的基类或接口时,子类才能返回不同类型的产品,同时基类中的工厂方法还应将其返回类型声明为这一共有接口。 调用工厂方法的代码不需要知道不同子类返回的实际对象之间的差异,不关心其具体实现方式。 适用场景: 无法预知对象确切类别及其依赖关系时; 工厂方法将创建产品的代码与实际使用产品的代码分离, 从而能在不影响其他代码的情况下扩展产品创建部分代码。 希望用户能扩展软件库或框架的内部组件; 将各框架中构造组件的代码集中到单个工厂方法中, 并在继承该组件之外允许任何人对该方法进行重写。 复用现有对象来节省系统资源, 而不是每次都重新创建对象; 优点: 避免创建者和具体产品之间的紧密耦合。 单一职责原则。 开闭原则。 缺点: 需要引入许多新的子类, 代码可能会因此变得更复杂。
首页
1
2
3
下一页