面向对象思想设计原则

设计模式:经验的总结,本质是一个思想,和具体的语言无关

分为创建型设计模式、结构型设计模式、行为型设计模式,共23个模式

创建型设计模式: 创建对象  6个   如简单工厂模式、工厂模式、单例模式

结构型设计模式: 对象的组成  7个

行为型设计模式:对象的功能   10个

简单工厂模式:定义一个具体的工厂类负责创建一些类的实例

优点:客户端不再需要负责对象的创建,从而明确了各个类的职责

弊端:每当有新的对象增加,就需要不断的修改工厂类,不利于后期的维护

代码

package cn.idcast;

public abstract class Animal {
public abstract void eat();
}
package cn.idcast;
public class Cat extends Animal {
	@Override
	// TODO Auto-generated method stub
	public void eat() {
		System.out.println("猫吃鱼");
	}
}
package cn.idcast;

public class Dog extends Animal {

	// TODO Auto-generated method stub
	public void eat() {
		System.out.println("狗吃肉");
	}
}
package cn.idcast;
//简单工厂模式
public class AnimalDemo {
	public static void main(String[] args) {
		Animal a = AnimalFactory.createAinmal("dog");
		System.out.println("狗吃肉");
		a = AnimalFactory.createAinmal("cat");
		System.out.println("猫吃鱼");
		a=AnimalFactory.createAinmal("hahah");
		System.out.println("暂时没有这种东西");
	}
}
package cn.idcast;

public class AnimalFactory {
	private AnimalFactory() {}
	public static Animal createAinmal(String type) {
	if("dog".equals(type)) {
		return new Dog();
	}else if("cat".equals(type)) {
		return new Cat();
	}else {
		return null;
	}
}
}

    工厂模式:抽象工厂类负责创建对象的接口,具体对象的创建工作和由继承抽象工厂的具体类实现    (大厂下面有小厂)

优点:客户端不再需要负责对象的创建,明确了各个类的职责,后期维护容易,增强了系统的扩展性

弊端:需要额外的编写代码,增加了工作量

代码

package cn.idcast2;

public abstract class Animal {
public abstract void eat();
}
package cn.idcast2;

public interface AnimalFactory {
public abstract Animal createAnimal();
}
package cn.idcast2;
public class Dog extends Animal {
	// TODO Auto-generated method stub
	public void eat() {
		System.out.println("狗吃肉");
	}
}
package cn.idcast2;
public class DogFactory implements AnimalFactory {
	// TODO Auto-generated method stub
	@Override
	public Animal createAnimal() {
		return new Dog();
	}
}
package cn.idcast2;
//工厂模式
public class AnimalDemo {
public static void main(String[] args) {
	AnimalFactory af = new DogFactory();
	Animal a =af.createAnimal();
	a.eat();
}
}

 

时间: 2024-10-07 07:04:21

面向对象思想设计原则的相关文章

面向对象思想设计原则 及常见设计模式

1.面向对象思想设计原则 在实际的开发中,我们要想更深入的了解面向对象思想,就必须熟悉前人总结过的面向对象的思想的设计原则. 1)单一职责原则:就是开发人员经常说的”高内聚,低耦合”.也就是说,每个类应该只有一个职责,对外只能提供一种功能,而引起类变化的原因应该只有一个.在设计模式中,所有的设计模式都遵循这一原则. 2)开闭原则:一个对象对扩展开放,对修改关闭.也就是说,对类的改动是通过增加代码进行的,而不是修改现有代码.软件开发人员一旦写出了可以运行的代码,就不应该去改动它,而是要保证它能一直

java 28 - 1 设计模式 之 面向对象思想设计原则和模版设计模式概述

在之前的java 23 中,了解过设计模式的单例模式和工厂模式.在这里,介绍下设计模式 面向对象思想设计原则 在实际的开发中,我们要想更深入的了解面向对象思想,就必须熟悉前人总结过的面向对象的思想的设计原则 单一职责原则 开闭原则 里氏替换原则 依赖注入原则 接口分离原则 迪米特原则 单一职责原则 其实就是开发人员经常说的"高内聚,低耦合" 也就是说,每个类应该只有一个职责,对外只能提供一种功能,而引起类变化的原因应该只有一个.在设计模式中,所有的设计模式都遵循这一原则. 开闭原则 核

面向对象的设计原则

面向对象设计原则是学习设计模式的基础,每一种设计模式都符合某一种或者多种面向对象设计原则.通过在软件开发中使用这些原则可以提高软件的可维护行和可用性,让我们可以设计出更加灵活也更加容易扩展的软件系统,实现可维护可复用的目标.在使用面向对象的思想进行系统设计时,前人共总结出了7条原则,它们分别是:单一职责原则.开闭原则.里氏替换原则.依赖注入原则.接口分离原则.迪米特原则和合成复用原则. 1.单一职责原则(SRP) 单一职责原则的核心思想就是:系统中的每一个对象都应该只有一个单独的职责,而所有对象

Java 面向对象的设计原则

一. 1.面向对象思想的核心: 封装.继承.多态.   2.面向对象编程的追求: 高内聚低耦合的解决方案: 代码的模块化设计: 3.什么是设计模式: 针对反复出现的问题的经典解决方案,是对特定条件下(上下文)问题的设计方案的经验总结,是前人设计实践经验的精华. 4.面向对象设计原则 是面向对象设计思想(法理精神)的提炼(基本宪法),比面向对象思想的核心要素更具有实操性,比设计模式(各种具体法律条文)更抽象. 5.如何最大限度降低耦合度? 少用类的继承,多用接口隐藏实现细节. 避免使用全局变量.

GOF 的23种JAVA常用设计模式总结 03 面向对象七大设计原则

在软件开发中,为了提高软件系统的可维护性和可复用性,增加软件的可扩展性和灵活性,程序员要尽量根据 7 条原则来开发程序,从而提高软件开发效率.节约软件开发成本和维护成本. 各位代码界的大佬们总结出的七大设计原则,还是需要好好了解一下 1.开闭原则 开闭原则(Open Closed Principle,OCP)由勃兰特·梅耶(Bertrand Meyer)提出,他在 1988 年的著作<面向对象软件构造>(Object Oriented Software Construction)中提出:软件实

零散知识点(面向对象七大设计原则,jdbc--BaseDao,jsp九大内置对象。四个作用域)

面向对象七大设计原则: 1.开闭原则(OCP:Open-Closed Principle)2.里氏替换原则(LSP:Liskov Substitution Principle) 3.单一职责原则(SRP:Single responsibility principle)4.接口隔离原则(ISP:Interface Segregation Principle)5.依赖倒置原则(DIP:Dependence Inversion Principle)6.迪米特法则(LOD:Law of Demeter)

.NET 高级架构师0005 架构师之路(4)---面向对象的设计原则

1         OO的设计原则 采用面向对象的分析和设计思想,为我们分析和解决问题提供了一种全新的思维方式.我们在拿到需求之后(略去OOA,以后补全),接下来的问题就是:如何对系统进行面向对象的设计呢? 按照软件工程的理论,面向对象的设计要解决的核心问题就是可维护性和可复用性.尤其是可维护性,它是影响软件生命周期重要因素,通常情况下,软件的维护成本远远大于初期开发成本. 一个可维护性很差的软件设计,人们通常称之为"臭味"的,形成的原因主要有这么几个:过于僵硬.过于脆弱.复用率低或者

面向对象重要设计原则概述

第一种讲法 凭什么要用面向对象来编程,不用是否可以?今天我们通过讲这么几个设计原则来说明为什么要用面向对象,它的好处在哪里. 开放-封闭原则:是说软件实体(类.模块.函数等等)应该可以扩展,但是不可修改. 里氏代换原则:子类型必须能够替换掉它们的父类型. 依赖倒转原则:A. 高层模块不应该依赖低层模块.两个都应该依赖抽象.B. 抽象不应该依赖细节.细节应该依赖抽象. 讲解完毕,今天培训结束. 反响:捣浆糊讲解,大家笑骂. 第二种讲法 开放-封闭原则举例 1982年1月,小平同志在会见美国华人协会

喵星之旅-沉睡的猫咪-面向对象的设计原则

一.设计原则是什么? 有句话叫“人民群众是历史的创造者”,他的意思我理解为任何的理论都是基于具体的客观展现总结出来的,没有人民创造的既定事实,就无法出现任何的有理有据的理论模型. 对于面向对象的软件设计,最著名的一本书就应该是当年gof的那一本<设计模式:可复用面向对象软件的基础>.设计模式是面对具体问题,进行抽象分类,然后总结出来的行之有效的解决方案,就像人去创造历史.设计原则是进一步研究这些解决方案,进一步抽象出的指导思想. 如果把设计模式比喻成传统数学,即“1+1=2”的那套理论,那么设