首页 > 代码库 > 面向对象思想设计原则
面向对象思想设计原则
设计模式:经验的总结,本质是一个思想,和具体的语言无关
分为创建型设计模式、结构型设计模式、行为型设计模式,共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(); } }
面向对象思想设计原则
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。