标签:耦合性 建议 细节 节点 col set img 计算器 prot
*********简单工厂模式*******
我们设计或者写出来的代码,要容易维护、容易扩展、并且容易复用
值需要改正要改的地方,这叫做可维护
以后出现类似的情况还可以用这一段代码,就叫做可复用
如若要添加其他东西,添加就好了,这叫做可扩展
要是能够随便移动项目中代码的位置,这叫做灵活性好
比如说写一个计算器的代码,就最好将业务层和界面进行分离,
**************策略模式*******************
案例:商场收银软件
对于算法经常变动的项目一般情况下建议使用。
*************单一职责原则***********************
就一个类而言,应该仅有一个引起他变化的原因。
*************开放封闭原则*********************
通俗的话讲,就是做两手准备
软件实体应该可以扩展,但是不能够进行修改。
***********************装饰模式 *********************
*******************代理模式***********************
迭代器设计模式:
创建容器
package com.bjsxt.dp.iterator; public class ArrayList { // 创建一个对象的的数组,这样就能够放入任意类型的对象了 Object[] objects = new Object[10]; int index = 0; public void add(Object o) { //这样只要在自己内存允许的情况下,就可以 无限制的添加了 if(index==objects.length){ Object[] newObjects=new Object[objects.length*2]; //将原来的数组存放到新数组中 System.arraycopy(objects, 0, newObjects, 0, objects.length); //将原来数组的引用指向新的数组 objects=newObjects; } objects[index] = o;// 表示新加进来的对象 index++; } //看看最后装了 多少个 public int size(){ return index; } }
package com.bjsxt.dp.iterator; public class Cat { private int id; public Cat() { super(); } public Cat(int id) { super(); this.id = id; } public int getId() { return id; } public void setId(int id) { this.id = id; } @Override public String toString() { return "Cat [id=" + id + "]"; } }
package com.bjsxt.dp.iterator; //使用链表方式的容器 public class LinkedList { Node head = null; Node tail = null; int size = 0; public void add(Object o) { Node n = new Node(o, null); if (head == null) { head = n; tail=n; } tail.setNext(n); tail=n; size++; } public int size() { return size; } }
package com.bjsxt.dp.iterator; //节点类 public class Node { private Object data;// 数据本身 private Node next;// 那只拉住下一个节点的小手 public Node() { super(); } public Node(Object data, Node next) { super(); this.data = data; this.next = next; } public Object getData() { return data; } public void setData(Object data) { this.data = data; } public Node getNext() { return next; } public void setNext(Node next) { this.next = next; } }
package com.bjsxt.dp.iterator; //注意这里我们引用自己定义的Arraylist类,而不是使用jdk自带的arraylist类 //这个容器比数组好用 import org.junit.Test; import com.bjsxt.dp.iterator.ArrayList;; public class TestMethod { @Test public void test01() { ArrayList al = new ArrayList(); for (int i = 0; i < 15; i++) { al.add(new Cat(i)); } System.out.println(al.size()); } @Test public void test02() { LinkedList al = new LinkedList(); for (int i = 0; i < 15; i++) { al.add(new Cat(i)); } System.out.println(al.size()); } }
变量私有的叫做字段,公有的叫做属性
使用protected修饰的成员对子类公开,对其他的类是不公开的
继承是有缺点的,父类变动,子类也得跟着做出相应的变动
同时,继承会破环包装,父类的实现细节暴漏给子类,这其实大大增加 两者之间的耦合性。
一个类是另外一个 类的特殊类
抽象方法没有方法体,抽象类中是可以有普通方法的
标签:耦合性 建议 细节 节点 col set img 计算器 prot
原文地址:https://www.cnblogs.com/dongyaotou/p/9937387.html