Как важно хорошо изучить боевые искусства. Подобно тем, кто практиковал неправильное мышление, например, дядя Оуян Фэн, у которого было неправильное мышление, попал в беду и умер на вершине горы Хуашань. Есть также некоторые боевые искусства, которые сначала должны прийти из дворца, может быть, на следующей странице будет сказано, что предыдущая страница не нужна. Таким образом, 6 основных принципов, каждый должен полностью понять мысленный метод, чтобы хорошо практиковать боевые искусства.
Начнем с обзора 6 принципов шаблонов проектирования.
-
1. Принцип «открыто-закрыто» | Открыт для расширения, закрыт для модификации.
-
2. Принцип замещения Лисков | Подклассы могут заменить внешний вид базовых классов.
-
3. Принцип инверсии зависимостей Программирование интерфейсов зависит от абстракции, а не от конкретики.
-
4. Принцип изоляции интерфейса Использование нескольких изолированных интерфейсов лучше, чем использование одного интерфейса. (уменьшить связь между классами)
-
5. Закон Деметры (принцип наименьшего знания) | Сущность должна как можно меньше взаимодействовать с другими сущностями.
-
6. Единственная ответственность | У класса должна быть только одна причина для его изменения, одна ответственность.
Конечно, это все еще слишком абстрактно, чтобы смотреть на это таким образом.Далее будет подробно объяснено в виде 4 дней (4 статьи) небольших комиксов + код~
первый день
Последняя ссылка:Начало шаблонов проектирования
public class Animal {
public void eat() {
System.out.println("eat something");
}
public void sleep() {
System.out.println("sleeping ~~");
}
}
public void eat (String kind) {
if (kind.equals("rabbit")) {
System.out.println("eat some carmine");
}
if (kind.equals("tigger")) {
System.out.println("eat some meat");
}
}
public class Rabbit extends Animal {
public void eat() {
System.out.println("eat some carmine");
}
}
public class Cooker {
public void cook(Potato potato) {
System.out.println("开始做菜了");
System.out.println(potato.getFood());
}
}
class Potato {
public String getFood() {
return "酸辣土豆丝";
}
}
public interface FoodMaterial {
String getFood();
}
class Potato implements FoodMaterial{
@Override
public String getFood() {
return "酸辣土豆丝";
}
}
class Chicken implements FoodMaterial{
@Override
public String getFood() {
return "可乐鸡翅";
}
}
public class Cooker {
public void cook(FoodMaterial foodMaterial) {
System.out.println("开始做菜了");
System.out.println(foodMaterial.getFood());
}
public static void main (String []args) {
Cooker cooker = new Cooker();
cooker.cook(new Potato());
}
}
На следующий день
public interface EmployService {
void sign (); //打卡
void knockCode();//敲代码
void recruit(); //招聘
void relationShip(); //员工关系
void performanceEvaluation(); //绩效管理
void procedureDesign(); //程序设计
void makeBugs(); //哈哈哈
}
public class HrServiceImpl implements EmployService{
@Override
public void sign() {
System.out.println("打卡");
}
@Override
public void knockCode() {
}
@Override
public void recruit() {
System.out.println("招聘");
}
@Override
public void relationShip() {
System.out.println("员工关系");
}
@Override
public void performanceEvaluation() {
System.out.println("绩效考核");
}
@Override
public void procedureDesign() {
}
@Override
public void makeBugs() {
}
}
public class ProgrammerServiceImpl implements EmployService {
@Override
public void sign() {
System.out.println("打卡");
}
@Override
public void knockCode() {
System.out.println("敲代码");
}
@Override
public void recruit() {
}
@Override
public void relationShip() {
}
@Override
public void performanceEvaluation() {
}
@Override
public void procedureDesign() {
System.out.println("程序设计");
}
@Override
public void makeBugs() {
System.out.println("造点bug");
}
}
public class ProgrammerClient {
public void sign (EmployService employService) {
employService.sign();
}
public void knockCode(EmployService employService) {
employService.knockCode();
}
public void procedureDesign(EmployService employService) {
employService.procedureDesign();
}
public void makeBugs(EmployService employService) {
employService.makeBugs();
}
}
public class HrClient {
public void sign (EmployService employService) {
employService.sign();
}
public void performanceEvaluation(EmployService employService) {
employService.performanceEvaluation();
}
public void recruit(EmployService employService) {
employService.recruit();
}
public void relationShip(EmployService employService) {
employService.relationShip();
}
}
public interface EmployService {
void sign(); //打卡
}
public interface HrService {
void recruit(); //招聘
void relationShip(); //员工关系
void performanceEvaluation(); //绩效管理
}
public class HrServiceImpl implements HrService,EmployService{
@Override
public void sign() {
System.out.println("打卡");
}
@Override
public void recruit() {
System.out.println("招聘");
}
@Override
public void relationShip() {
System.out.println("员工关系");
}
@Override
public void performanceEvaluation() {
System.out.println("绩效管理");
}
}
public interface ProgrammerService {
void knockCode();//敲代码
void procedureDesign(); //程序设计
void makeBugs(); //哈哈哈
}
public class ProgrammerServiceImpl implements ProgrammerService,EmployService {
@Override
public void sign() {
System.out.println("签到");
}
@Override
public void knockCode() {
System.out.println("敲代码");
}
@Override
public void procedureDesign() {
System.out.println("程序设计");
}
@Override
public void makeBugs() {
System.out.println("造点bug");
}
}
день третий
public interface CarService{
String getName ();
void drive ();
String color();
}
public class Sedan implements CarService {
private String name;
private String color;
private int speed;
public Sedan(String name, String color,int speed{
this.name = name;
this.color = color;
this.speed = speed;
}
@Override
public String getName() {
return this.name;
}
@Override
public void drive() {
System.out.println("普通的小车普通的开" + this.speed);
}
@Override
public String color() {
return this.color;
}
}
public class FastSedan extends Sedan {
public FastSedan(String name, String color, int speed) {
super(name, color, speed);
}
public void drive() {
System.out.println("飙车的飙,飙起来" + this.getSpeed() * 2);
}
}
public class Boss {
//发布任务给cto
public void pushJob(CTO cto) {
List<Programmer> list = new ArrayList<Programmer>();
for (int i = 0;i < 5;i++) {
list.add(new Programmer());
}
cto.assignmentTask(list);
}
}
public class CTO {
//分配任务
public void assignmentTask(List<Programmer> programmers) {
for (Programmer programmer:programmers) {
programmer.backPot();
}
}
}
public class Programmer {
//背锅
public void backPot () {
System.out.println("程序员背起了小锅");
}
}
public class Client {
public static void main (String []args) {
Boss boss = new Boss();
boss.pushJob(new CTO());
}
}
Последний день
Давайте объединим
Публичная учетная запись «Java Little Coffee Show» фокусируется на области Java, а также на обучении и прогрессе с друзьями ~
В этой статье используетсяmdniceнабор текста