展开
拓展 关闭
订阅号推广码
GitHub
视频
公告栏 关闭

随笔分类 -  算法与设计 / 设计模式

摘要:简介 1) 原型模式(Prototype模式)是指:用原型实例指定创建对象的种类,并且通过拷贝这些原型,创建新的对象 2) 原型模式是一种创建型设计模式,允许一个对象再创建另外一个可定制的对象,无需知道如何创建的细节 3) 工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象 阅读全文
posted @ 2022-08-30 14:04 DogLeftover 阅读(15) 评论(0) 推荐(0) 编辑
摘要:现在有一只羊tom,姓名为: tom, 年龄为:1,颜色为:白色,请编写程序创建和tom羊 属性完全相同的10只羊 代码实现 package com.atguigu.prototype; public class Sheep { private String name; private int ag 阅读全文
posted @ 2022-08-30 13:45 DogLeftover 阅读(20) 评论(0) 推荐(0) 编辑
摘要:编写案例代码 package com.atguigu.jdk; import java.util.Calendar; public class Factory { public static void main(String[] args) { // getInstance 是 Calendar 静 阅读全文
posted @ 2022-08-30 13:43 DogLeftover 阅读(38) 评论(0) 推荐(0) 编辑
摘要:简介 1) 抽象工厂模式:定义了一个interface用于创建相关或有依赖关系的对象簇,而无需指明具体的类 2) 抽象工厂模式可以将简单工厂模式和工厂方法模式进行整合。 3) 从设计层面看,抽象工厂模式就是对简单工厂模式的改进(或者称为进一步的抽象)。 4) 将工厂抽象成两层,AbsFactory( 阅读全文
posted @ 2022-08-30 11:35 DogLeftover 阅读(12) 评论(0) 推荐(0) 编辑
摘要:需求 披萨项目新的需求:客户在点披萨时,可以点不同口味的披萨,比如 北京的奶酪pizza、北京的胡椒pizza 或者是伦敦的奶酪pizza、伦敦的胡椒pizza 思路1 使用简单工厂模式,创建不同的简单工厂类,比如BJPizzaSimpleFactory、LDPizzaSimpleFactory 等 阅读全文
posted @ 2022-08-30 11:20 DogLeftover 阅读(18) 评论(0) 推荐(0) 编辑
摘要:简介 1) 简单工厂模式是属于创建型模式,是工厂模式的一种。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式 2) 简单工厂模式:定义了一个创建对象的类,由这个类来封装实例化对象的行为(代码) 3) 在软件开发中,当我们会用到大量的创建某种、某类 阅读全文
posted @ 2022-08-30 10:40 DogLeftover 阅读(11) 评论(0) 推荐(0) 编辑
摘要:需求 披萨项目:要便于披萨种类的扩展,要便于维护 1) 披萨的种类很多(比如 GreekPizz、CheesePizz 等) 2) 披萨的制作有 prepare,bake, cut, box 3) 完成披萨店订购功能。 代码实现 package com.atguigu.factory.simplef 阅读全文
posted @ 2022-08-30 10:38 DogLeftover 阅读(51) 评论(0) 推荐(0) 编辑
摘要:ctrl + n,搜索Runtime public class Runtime { private static final Runtime currentRuntime = new Runtime(); private static Version version; /** * Returns t 阅读全文
posted @ 2022-08-30 10:04 DogLeftover 阅读(22) 评论(0) 推荐(0) 编辑
摘要:双重检查 package com.atguigu.singleton.type6; public class SingletonTest06 { public static void main(String[] args) { System.out.println("双重检查"); Singleto 阅读全文
posted @ 2022-08-30 10:01 DogLeftover 阅读(16) 评论(0) 推荐(0) 编辑
摘要:懒汉式(线程不安全) package com.atguigu.singleton.type3; public class SingletonTest03 { public static void main(String[] args) { System.out.println("懒汉式1 , 线程不 阅读全文
posted @ 2022-08-30 09:58 DogLeftover 阅读(28) 评论(0) 推荐(0) 编辑
摘要:饿汉式(静态常量) 1) 构造器私有化 (防止 new ) 2) 类的内部创建对象 3) 向外暴露一个静态的公共方法。getInstance 代码实现 package com.atguigu.singleton.type1; public class SingletonTest01 { public 阅读全文
posted @ 2022-08-30 09:48 DogLeftover 阅读(37) 评论(0) 推荐(0) 编辑
摘要:1) 设计模式是程序员在面对同类软件工程设计问题所总结出来的有用的经验,模式不是代码,而是某类问题的通用解决方案,设计模式(Design pattern)代表了最佳的实践。 这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。 2) 设计模式的本质提高 软件的维护性,通用性和扩 阅读全文
posted @ 2022-08-29 17:10 DogLeftover 阅读(12) 评论(0) 推荐(0) 编辑
摘要:简介 原则是尽量使用合成/聚合的方式,而不是使用继承 将A类的对象实例传给B类的方法 使用set方法将A类的实例传给B类 在B类中new一个A类的实例 设计原则核心思想 1) 找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。 2) 针对接口编程,而不是针对实现编程。 阅读全文
posted @ 2022-08-29 14:36 DogLeftover 阅读(13) 评论(0) 推荐(0) 编辑
摘要:简介 1) 一个对象应该对其他对象保持最少的了解 2) 类与类关系越密切,耦合度越大 3) 迪米特法则(Demeter Principle)又叫最少知道原则,即一个类对自己依赖的类知道的越少越好。也就是说,对于被依赖的类不管多么复杂,都尽量将逻辑封装在类的内部。对外除了提供的public 方法,不对 阅读全文
posted @ 2022-08-29 14:31 DogLeftover 阅读(43) 评论(0) 推荐(0) 编辑
摘要:简介 1) 开闭原则(Open Closed Principle)是编程中最基础、最重要的设计原则 2) 一个软件实体如类,模块和函数应该对扩展开放(对提供方),对修改关闭(对使用方)。用抽象构建框架,用实现扩展细节。 3) 当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有 阅读全文
posted @ 2022-08-29 11:56 DogLeftover 阅读(23) 评论(0) 推荐(0) 编辑
摘要:OO中的继承性 1) 继承包含这样一层含义:父类中凡是已经实现好的方法,实际上是在设定规范和契约,虽然它不强制要求所有的子类必须遵循这些契约,但是如果子类对这些已经实现的方法任意修改,就会对整个继承体系造成破坏。 2) 继承在给程序设计带来便利的同时,也带来了弊端。比如使用继承会给程序带来侵入性,程 阅读全文
posted @ 2022-08-29 11:37 DogLeftover 阅读(30) 评论(0) 推荐(0) 编辑
摘要:简介 1) 高层模块不应该依赖低层模块,二者都应该依赖其抽象 2) 抽象不应该依赖细节,细节应该依赖抽象 3) 依赖倒转(倒置)的中心思想是面向接口编程 4) 依赖倒转原则是基于这样的设计理念:相对于细节的多变性,抽象的东西要稳定的多。以抽象为基础搭建的架构比以细节为基础的架构要稳定的多。在java 阅读全文
posted @ 2022-08-29 10:40 DogLeftover 阅读(17) 评论(0) 推荐(0) 编辑
摘要:简介 客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口上 案例1 类A通过接口Interface1依赖类B,类C通过接口Interface1依赖类D,如果接口Interface1对于类A和类C来说不是最小接口,那么类B和类D必须去实现他们不需要的方法。 代码案例 pack 阅读全文
posted @ 2022-08-29 10:09 DogLeftover 阅读(27) 评论(0) 推荐(0) 编辑
摘要:简介 对类来说的,即一个类应该只负责一项职责。如类A负责两个不同职责:职责1,职责2。 当职责1需求变更而改变A时,可能造成职责2执行错误,所以需要将类A的粒度分解为A1,A2 注意事项和细节 1) 降低类的复杂度,一个类只负责一项职责。 2) 提高类的可读性,可维护性 3) 降低变更引起的风险 4 阅读全文
posted @ 2022-08-29 10:01 DogLeftover 阅读(26) 评论(0) 推荐(0) 编辑
摘要:简介 软件工程中,设计模式(design pattern)是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。这个术语是由埃里希·伽玛(Erich Gamma)等人 在1990年代从建筑设计领域引入到计算机科学的 设计模式的目的 编写软件过程中,程序员面临着来自 耦合性,内聚性以及可维护 阅读全文
posted @ 2022-08-28 21:58 DogLeftover 阅读(22) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示